title: capture multiple patterns in FIX messages
body: <p>I'm trying to capture multiple patterns in messages as below:</p>
  
  <pre><code>line ="8=FIX.4.4^A9=0424^A35=W^A49=BROKER02^A56=FIRM01^A52=20120525-11:41:31.421^A34=000003^A55=USD/JPY^A262=1^A268=6^A269=0^A270=79.513^A271=500000^A299=869589960^A5020=20120529^A269=0^A270=79.511^A271=500000^A299=869589961^A5020=20120529^A269=0^A270=79.507^A271=1000000^A299=869589962^A5020=20120529^A269=1^A270=79.517^A271=500000^A299=869589963^A5020=20120529^A269=1^A270=79.519^A271=500000^A299=869589964^A5020=20120529^A269=1^A270=79.523^A271=1000000^A299=869589965^A5020=20120529^A10=191^A"
  
  p1 = re.compile(r'(55=.*?)\^A') 
  p2 = re.compile(r'(55=.*?)\^A+(299=.*?)\^A+(5020=.*?)\^A')
  ret1 = re.findall(p1, line) 
  ret2 = re.findall(p2, line)
  </code></pre>
  
  <p>For p1 and p2, I expect that ret1 should be identical to the first part of ret2. However, what I'm getting is:</p>
  
  <pre><code>['55=USD/JPY']
  [('55=USD/JPY^A262=1^A268=6^A269=0^A270=79.513^A271=500000', '299=869589960', '5020=20120529')]
  </code></pre>
  
  <p>Why is this? Why the first portion captures more than ^A?
  Thanks!</p>