title: re.match() multiple times in the same string with Python
body: <p>I have a regular expression to find :ABC:`hello` pattern. This is the code.</p>
  
  <pre><code>format =r".*\:(.*)\:\`(.*)\`"
  patt = re.compile(format, re.I|re.U)
  m = patt.match(l.rstrip())
  if m:
      ...
  </code></pre>
  
  <p>It works well when the pattern happens once in a line, but with an example ":tagbox:`Verilog` :tagbox:`Multiply` :tagbox:`VHDL`". It finds only the last one. </p>
  
  <p>How can I find all the three patterns?</p>
  
  <h3>EDIT</h3>
  
  <p>Based on Paul Z's answer, I could get it working with this code</p>
  
  <pre><code>format = r"\:([^:]*)\:\`([^`]*)\`"
  patt = re.compile(format, re.I|re.U)
  for m in patt.finditer(l.rstrip()):
      tag, value = m.groups()  
      print tag, ":::", value
  </code></pre>
  
  <p>Result</p>
  
  <pre><code>tagbox ::: Verilog
  tagbox ::: Multiply
  tagbox ::: VHDL
  </code></pre>