Stefan Monnier wrote:
>>>>> "Brady" == Brady Montz <bradym(a)balestra.org>
writes:
> Can anyone explain to me why:
> (string-match "\\( *a+\\)+" "a a")
> returns 0 and
> (string-match "\\(?: *a+\\)+" "a a")
> returns nil
Because the regexp engine has several bugs in its handling of loops.
Some of them are due to assumptions about the shape of compiled regexps
which don't hold any more since (?:...) was introduced.
ack!!!!!!!! this is insane!
whoever did the quarter-ass implementation of (?:...) should be shot on sight.
[hope it wasn't you :-) ...]
having a buggy regexp feature is worse than not having it at all.
what other bugs out there lurking do you know of?
Stefan
--
ben
I'm sometimes slow in getting around to reading my mail, so if you
want to reach me faster, call 520-661-6661.
See
http://www.666.com/ben/chronic-pain/ for the hell I've been
through.