We're having a discussion on Ruby Core about how to speed up CSV.   
I'm trying to tune a Regexp that matches CSV fields.  However, I'm  
seeing something I don't expect.  Can someone explain this to me,  
please?

 >> ",".scan(/(?:^|,)(?:"()"|([^",]*))/)
=> [[nil, ""]]

That's a simplified version of what I'm messing with.  My question  
is, why does it only match once, when I expect two matches?

The first match should be right at the beginning, and is basically  
(?:^ ... )(?: ... ([^",]*)).  The second match should begin at the  
comma, being (?: ... ,)(?: ... ([^",]*)).  What am I missing?

James Edward Gray II