title: Giving more priority to later capture group in date regex
body: <p>I am preparing a Python regex expression to match a idiosyncratic format for timedeltas.</p>
  <p>Here are some examples of strings I will feed into the regex:</p>
  <pre class="lang-py prettyprint-override"><code>1:42.15 (1)
  19.78 (1)
  2-24:04
  8:03.280 (1)
  </code></pre>
  <p>So the overall format is <code>hour-minute:second.second_fractions</code>, sometimes padded with zeroes. The number in parenthesis that appears at the end of some strings must be ignored.</p>
  <p>I would like to match each line using three capture groups so that the 1st group is always the hour, the 2nd is always the minute and the 3rd is always the seconds and second fractions together.</p>
  <p>I wrote this regex: <code>(\d{0,2})-?(\d{0,2}):?(\d{0,2}\.?\d*)</code></p>
  <p>This succesfully matches all examples I have tried it on, but there is an issue. Because of the greedy way regex matched, when eg the hour is missing the minute is captured by the <em>first capture group</em> instead of the second as I intended.</p>
  <p>That is, with the input <code>1:42.15 (1)</code> I get the output <code>('1', '', '42.15')</code>. What I actually wanted is the output <code>('', '1', '42.15')</code> - the minute always corresponding to the second capture group.</p>
  <p>How can I modify the priorities of the capture groups to achieve this behaviour?</p>