title: Python re.findall() to get all matched groups
body: <p>This is delimited text but I want to parse it w/ regex.</p>
  
  <p>Second column and next take seconds or milliseconds.</p>
  
  <pre><code>&gt;&gt;&gt; import re 
  &gt;&gt;&gt; s = '''aaa
  bbb|30s
  ccc|500ms|1s'''
  &gt;&gt;&gt; re.findall(r'(\w+)(?:\|(\d+(?:s|ms)))?(?:\|(\d+(?:s|ms)))?', s)
  </code></pre>
  
  <p>Output(Expected answer):</p>
  
  <pre><code>[('aaa', '', ''), ('bbb', '30s', ''), ('ccc', '500ms', '1s')]
  </code></pre>
  
  <p>I wanted to make this pattern shorter by using quanti­fiers like * or {x,y}.</p>
  
  <p>So I did:</p>
  
  <pre><code>&gt;&gt;&gt; re.findall(r'(\w+)(?:(?:\|(\d+(?:s|ms)))*)', cmdstr)
  
  [('aaa', ''), ('bbb', '30s'), ('ccc', '500ms')]  # WRONG
  </code></pre>
  
  <p>I failed.</p>
  
  <p>How can I do this regex pattern?</p>