From: "jayferd (Jay Adkisson)" <jjmadkisson@...>
Date: 2012-10-22T06:07:54+09:00
Subject: [ruby-core:48143] [ruby-trunk - Bug #7092] StringScanner start-of-line matches false positives, while lookbehind for a newline gives false negatives


Issue #7092 has been updated by jayferd (Jay Adkisson).


Bump.  Can someone confirm whether or not this is expected behavior?
----------------------------------------
Bug #7092: StringScanner start-of-line matches false positives, while lookbehind for a newline gives false negatives
https://bugs.ruby-lang.org/issues/7092#change-31146

Author: jayferd (Jay Adkisson)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] 


To reproduce:

    >> require 'strscan'
    >> ss = StringScanner.new("ab")
    >> ss.scan(/./)
    => "a"
    >> ss.scan(/^./) # expecting nil, since the head is in the middle of a line
    => "b"

As a workaround-that-didn't-work, I also tried looking behind for a newline, which seems never to match, even with the `m` flag.

    >> ss = StringScanner.new("a\nb")
    >> ss.scan(/../m)
    => "a\n"
    >> ss.scan(/(?<=\n)./m) # expecting "b", since the previous char is a newline
    => nil



-- 
http://bugs.ruby-lang.org/