title: JS regex not returning all matched group
body: <p>My string is as follows:</p>
  
  <pre><code>var data = "Validation failed: Attachments document 01april2015_-_Copy.csv has contents that are not what they are reported to be, Attachments document 01april2015.csv has contents that are not what they are reported to be"
  </code></pre>
  
  <p>My regex:</p>
  
  <pre><code>var regex = /Validation failed:(?:(?:,)* Attachments document ([^,]*) has contents that are not what they are reported to be)+/;
  </code></pre>
  
  <p>result:</p>
  
  <pre><code>data.match(regex)
  </code></pre>
  
  <blockquote>
    <p>["Validation failed: Attachments document 01april2015_-_Copy.csv has contents that are not what they are reported to be, Attachments document 01april2015.csv has contents that are not what they are reported to be", "01april2015.csv"]</p>
  </blockquote>
  
  <pre><code>data.match(regex).length == 2
  </code></pre>
  
  <blockquote>
    <p>true</p>
  </blockquote>
  
  <p>Expected result:</p>
  
  <pre><code>data.match(regex)
  </code></pre>
  
  <blockquote>
    <p>["Validation failed: Attachments document 01april2015_-<em>Copy.csv has contents that are not what they are reported to be, Attachments document 01april2015.csv has contents that are not what they are reported to be", "01april2015</em>-_Copy.csv", "01april2015.csv"]</p>
  </blockquote>
  
  <pre><code>data.match(regex).length == 3
  </code></pre>
  
  <blockquote>
    <p>true</p>
  </blockquote>
  
  <p>I am unable to comprehend why is it not returning the first filename(<code>01april2015_-_Copy.csv</code>) after match. Any sort of explanation would be sincerely appreciated.</p>