title: How can I make a regular expression move to the next match?
body: <p>I'm trying to use a regular expression to find matches in text of the following pattern:</p>
  
  <pre><code>(500,0,'ABC',4),(550,0,'ABC',0),(450,0,'D\'E,F',0),(650,0,'G_HI',0);
  </code></pre>
  
  <p>What I want is the <strong>first number</strong> and the <strong>string</strong>, but <em>only</em> if the second and fourth positions (always numbers) are both zero. In this example, this would result in these matches:</p>
  
  <pre><code>550    ABC
  450    D\'E,F
  650    G_HI
  </code></pre>
  
  <p>The regex I came up with is <code>\((\d+),0,'(\S+?)',0</code> but when it finds the <code>4)</code>, it keeps consuming text until it reaches the first <code>0)</code>. I want it to skip this match, and try the next one.</p>
  
  <p>Is this possible with regular expressions?</p>
  
  <p>I'm using C++14 std::regex, which to my understanding has fairly good support for several dialects.</p>