title: How do I make sure regular expression is matched both times?
body: <p>I currently use the following regex (in PHP):</p>
  
  <pre><code>preg_match_all('/\s+?[-]{3,}\s(POST|GET|PUT|DELETE)\s([\/A-Za-z\-_{}]*)\s+(.*)\s+[-]{3,}\s+/ism',$text, $m, PREG_SET_ORDER)
  </code></pre>
  
  <p>Basically, it works fine, but due to the (.*), it matches both the contents of the first item, and the second. I tried multiple things, but I can't get it to recognize the following string as two matches instead of one.</p>
  
  <pre><code>----
  POST /users/{user-id}/relationship
  
  Modify the relationship between the current user and the target user. 
  *Required scope: relationships*
  
  ### Parameters
  - access_token: A valid access token.
  - action: One of follow/unfollow/block/unblock/approve/deny.
  
  ### Example response
  ```
      {
          "meta": {
              "code": 200
          }, 
          "data": {
              "outgoing_status": "requested"
          }
      }
  ```
  
  ----
  
  ----
  GET /users/{user-id}/relationship
  
  Modify the relationship between the current user and the target user. 
  *Required scope: relationships*
  
  ### Parameters
  - access_token: A valid access token.
  
  ----
  </code></pre>
  
  <p>Someone any idea how to achieve this? Thanks.</p>
  
  <p><strong>Update:</strong> Excuse me for not being clear enough. I want to match everything inbetween the Markdown horizontal dividers (----), so that those form two blocks, with are both API method descriptions. </p>