From: Robert Klemme Date: 2010-11-24T00:55:07+09:00 Subject: Re: Regex negative look-behind bug? On Tue, Nov 23, 2010 at 4:36 PM, Ammar Ali wrote: > On Tue, Nov 23, 2010 at 4:36 PM, Ruby Nuby wrote: > >> irb, Ruby 1.9.1 >> >> What am I missing here? >> >> "b T T W b".match(/(?> => nil >> >> #The second look-behind is now just a >> "b T T W b".match(/(?> => # >> >> #Regex stays the same, the T T are now in lower case >> "b t t W b".match(/(?> => nil >> >> #Look-behind only contains the t t condition now and, T T are back to >> upper case >> "b T T W b".match(/(?> => nil > > No bug here. It is doing exactly what you asked: only match a w if it is not > preceded by 't t'. In all cases the w is preceded by 't t', and in the case > that did match (? you asked, so it did match. That was an alternative! If the RX in the lookbehind can match, the negative lookbehind must fail IMHO. There is a problem with the match though. I suspect there is an issue with case sensitivity propagation irb(main):009:0> "b T T W b".match(/(? # irb(main):010:0> "b T T W b".match(/(?i: nil irb(main):013:0> RUBY_VERSION => "1.9.1" irb(main):014:0> RUBY_PATCHLEVEL => 430 Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/