From: Pit Capitain Date: 2005-09-14T03:46:08+09:00 Subject: Re: Surprising Regexp Behavior James Edward Gray II schrieb: > I keep running into some surprising points with Ruby's Regexp engine > today and this first one just looks plain wrong to me: > > irb(main):001:0> html = "

one

\n\n

two

" > => "

one

\n\n

two

" > irb(main):002:0> html.sub!(/

(.*?)<\/p>(.*)/) { $1.strip } > => "one\n\n

two

" > irb(main):003:0> $2 > => "" > > Can anyone explain to me how that isn't a bug? > > Here's another surprise, for me: > > irb(main):001:0> html = "

one

\n\n

two

" > => "

one

\n\n

two

" > irb(main):002:0> html.sub!(/

(.*?)<\/p>(.*)\Z/) { $1.strip } > => "

one

\n\ntwo" > > Using an anchor there means that the left-most match doesn't win? James, what did you expect? Both examples look perfectly valid to me. Regards, Pit