From ad81574f3cd7aef3e7d9106d6fa86901556b1731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 15 Nov 2011 16:34:01 +0100 Subject: [PATCH] Caseless matching of backreferences with fixed length repetitions was broken. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From development SVN tree: r746 | ph10 | 2011-11-15 16:07:02 +0100 (Út, 15 lis 2011) | 2 lines 6. Lookbehinds such as (?<=a{2}b) that contained a fixed repetition were erroneously being rejected as "not fixed length" if PCRE_CASELESS was set. This bug was probably introduced by change 9 of 8.13. Petr Pisar: Changelog entry removed. See . --- pcre_compile.c | 1 + testdata/testinput1 | 10 ++++++++++ testdata/testoutput1 | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 0 deletions(-) diff --git a/pcre_compile.c b/pcre_compile.c index 3fc7c82..588e981 100644 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -1595,6 +1595,7 @@ for (;;) need to skip over a multibyte character in UTF8 mode. */ case OP_EXACT: + case OP_EXACTI: branchlength += GET2(cc,1); cc += 4; #ifdef SUPPORT_UTF8 diff --git a/testdata/testinput1 b/testdata/testinput1 index c913ee4..aa9ce42 100644 --- a/testdata/testinput1 +++ b/testdata/testinput1 @@ -4251,4 +4251,14 @@ /[:a]xxx[b:]/ :xxx: +/(?<=a{2})b/i + xaabc + ** Failers + xabc + +/(?