title: Getting sub-match_results with boost::regex
body: <p>Hey, let's say I have this regex: <code>(test[0-9])+</code></p>
  
  <p>And that I match it against: <code>test1test2test3test0</code></p>
  
  <pre><code>const bool ret = boost::regex_search(input, what, r);
  
  for (size_t i = 0; i &lt; what.size(); ++i)
      cout &lt;&lt; i &lt;&lt; ':' &lt;&lt; string(what[i]) &lt;&lt; "\n";
  </code></pre>
  
  <p>Now, <code>what[1]</code> will be <code>test0</code> (the last occurrence). Let's say that I need to get <code>test1</code>, 2 and 3 as well: what should I do?</p>
  
  <p>Note: the real regex is extremely more complex and has to remain one overall match, so changing the example regex to <code>(test[0-9])</code> won't work.</p>