From: Robert Klemme Date: 2007-01-26T23:30:10+09:00 Subject: Re: simple question about Ruby Regext On 26.01.2007 15:00, Alex Young wrote: > Peter Bailey wrote: >> Hi, >> I've been learning RUBY the past 7 months or so, and, now, my assistant >> is doing the same. In her perusal of the "Programming RUBY" book, first >> edition, she's come across a simple, simple regex truism that throws >> her, and throws me, too! >> >> Why is this true? >> >> "banana" =~ /an*/ >> =>1 >> >> This is driving me nuts. Why isn't the RUBY response "=>2?" There are >> two "an" stubs in "banana." > The number returned is the position of the start of match, not the > number of them. > >> I thought that RUBY, like PERL, is inherently greedy and it would find >> all instances of said regex expression. > It is... there's only one match, and it matches everything from the > first 'a' to the end of the string. No. It's just matching "an": irb(main):001:0> "banana"[/an*/] => "an" You were right if the regexp had a dot: irb(main):002:0> "banana"[/an.*/] => "anana" robert