Phooey. The lessons here are: if it looks good and seems to test well, it still might not be good -- test more; somewhat counterintuitively, {} match counts are slower than loops; some optimizations (e.g. those from
point out a correlary of the second lesson is that processing a string through multiple single REs is often better than one complex one.