title: How do you translate this regular-expression idiom from Perl into Python?
body: <p>I switched from Perl to Python about a year ago and haven't looked back.  There is only <i>one</i> idiom that I've ever found I can do more easily in Perl than in Python:</p>
  
  <pre><code>if ($var =~ /foo(.+)/) {
    # do something with $1
  } elsif ($var =~ /bar(.+)/) {
    # do something with $1
  } elsif ($var =~ /baz(.+)/) {
    # do something with $1
  }
  </code></pre>
  
  <p>The corresponding Python code is not so elegant since the if statements keep getting nested:</p>
  
  <pre><code>m = re.search(r'foo(.+)', var)
  if m:
    # do something with m.group(1)
  else:
    m = re.search(r'bar(.+)', var)
    if m:
      # do something with m.group(1)
    else:
      m = re.search(r'baz(.+)', var)
      if m:
        # do something with m.group(2)
  </code></pre>
  
  <p>Does anyone have an elegant way to reproduce this pattern in Python?  I've seen anonymous function dispatch tables used, but those seem kind of unwieldy to me for a small number of regular expressions...</p>