From: Dave Thomas Date: 2000-09-02T08:01:51+09:00 Subject: [ruby-talk:4736] Re: Possible regex bug? hal9000@hypermetrics.com writes: > OK, I'm trying to match an optional comma followed by > one or more spaces... > > The sample program regx.rb leads me to believe that > this will work: /,? */ Always be careful with patterns containing '*'. For example, 'caaaaaat' =~ /a*/ # => 0 p $& # => "" /a*/ matched the string by matching exactly _zero_ 'a's at the start. > But: p "4.2, 3.1, 5.3".split(/,? */) Your pattern also matches a zero length string: 'no commas and no spaces'. This is why split isn't doing what you want. However, in your problem definition, you said you wanted an optional comma followed by _one_ or more spaces. That's a different beast: "4.2, 3.1, 5.3".split(/,? +/) # => ["4.2", "3.1", "5.3"] ^ one or more... ---------+ You could also have used scan: "4.2, 3.1, 5.3".scan(/[\d.]+/) # => ["4.2", "3.1", "5.3"] Regards Dave