![]() In a pattern like a*b a naive attempt to match will take quadratic time on an input that contains all "a"s an no "b". To improve that case, the regexp compiler detects that a match will require a "b" and checks the input for a "b" to enable linear-time failure. That optimization mishandled `(?!...)` and `(?<!...)` patterns, treating the must-not-match subpatterns as things that must match. So, (regexp-match "a*(?!b)" "aaaxy") returned false, because the input doesn't contain "b". Thie commit repairs the optimization. Closes #1468 |
||
---|---|---|
.. | ||
mzlib | ||
tests/racket | ||
info.rkt | ||
LICENSE.txt |