Robert Klemme wrote:
> 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"
> 
Oops :-)  Sorry for any confusion.  Not enough blood in my caffeine 
system, obviously :-)

-- 
Alex