On 2010年08月04日 00:57, Bob McGowan wrote: > I would suspect > the regex engine is still honoring '. (dot) does not match newline' > convention but is OK with literals, if present. >
It can be a bug in grep implementation. If your theory holds true, the following should match, but it doesn't. $ printf "a\nb" | grep -z 'a[^a]*b' $ Because, if dot does not match newline, like in Java (verified in Java-based JEdit editor), then dot is equal to [^\n] In that case a easy way to workaround it is to replace dot with [^[:something-horribly-non-existent:]] P.S. A interesting design might be: for an RE implementation where dot does not match newline, the very RE implementation should allow [^] to mean really "matches anything". But the java people didn't do so, they introduced "DOTALL" mode, if you enter this mode, dot means anything, otherwise it means [^\n]. This new mode only makes things more complicated to my understanding. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c5b6c85.7080...@realss.com