version 1.1.1.3, 2012/10/09 09:19:18
|
version 1.1.1.4, 2013/07/22 08:25:57
|
Line 313
|
Line 313
|
*** Failers |
*** Failers |
fooabar |
fooabar |
|
|
/This one is here because Perl 5.005_02 doesn't fail it/I |
|
|
|
/^(a)?(?(1)a|b)+$/I |
|
*** Failers |
|
a |
|
|
|
/This one is here because Perl behaves differently; see also the following/I |
/This one is here because Perl behaves differently; see also the following/I |
|
|
/^(a\1?){4}$/I |
/^(a\1?){4}$/I |
Line 2939 a random value. /Ix
|
Line 2933 a random value. /Ix
|
xxxxabcde\P |
xxxxabcde\P |
xxxxabcde\P\P |
xxxxabcde\P\P |
|
|
/-- This is not in the Perl >= 5.10 test because Perl seems currently to be | /-- This is not in the Perl-compatible test because Perl seems currently to be |
broken and not behaving as specified in that it *does* bumpalong after |
broken and not behaving as specified in that it *does* bumpalong after |
hitting (*COMMIT). --/ |
hitting (*COMMIT). --/ |
|
|
Line 2985 a random value. /Ix
|
Line 2979 a random value. /Ix
|
|
|
/^(?&t)*(?(DEFINE)(?<t>.))$/BZ |
/^(?&t)*(?(DEFINE)(?<t>.))$/BZ |
|
|
/ -- The first four of these are not in the Perl >= 5.10 test because Perl | / -- This one is here because Perl gives the match as "b" rather than "ab". I |
documents that the use of \K in assertions is "not well defined". The | |
last is here because Perl gives the match as "b" rather than "ab". I | |
believe this to be a Perl bug. --/ |
believe this to be a Perl bug. --/ |
|
|
/(?=a\Kb)ab/ |
|
ab |
|
|
|
/(?!a\Kb)ac/ |
|
ac |
|
|
|
/^abc(?<=b\Kc)d/ |
|
abcd |
|
|
|
/^abc(?<!b\Kq)d/ |
|
abcd |
|
|
|
/(?>a\Kb)z|(ab)/ |
/(?>a\Kb)z|(ab)/ |
ab |
ab |
|
|
/----------------------/ |
|
|
|
/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ |
/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ |
|
|
/abc(*MARK:)pqr/ |
/abc(*MARK:)pqr/ |
Line 3021 a random value. /Ix
|
Line 2999 a random value. /Ix
|
/A(*COMMIT)B/+K |
/A(*COMMIT)B/+K |
ACABX |
ACABX |
|
|
/--- These should be different, but in Perl 5.11 are not, which I think | /--- These should be different, but in Perl they are not, which I think |
is a bug in Perl. ---/ |
is a bug in Perl. ---/ |
|
|
/A(*THEN)B|A(*THEN)C/K |
/A(*THEN)B|A(*THEN)C/K |
Line 3030 a random value. /Ix
|
Line 3008 a random value. /Ix
|
/A(*PRUNE)B|A(*PRUNE)C/K |
/A(*PRUNE)B|A(*PRUNE)C/K |
AC |
AC |
|
|
/--- This should fail; the SKIP advances by one, but when we get to AC, the |
|
PRUNE kills it. Perl behaves differently. ---/ |
|
|
|
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK |
|
AAAC |
|
|
|
/--- Mark names can be duplicated. Perl doesn't give a mark for this one, |
/--- Mark names can be duplicated. Perl doesn't give a mark for this one, |
though PCRE does. ---/ |
though PCRE does. ---/ |
|
|
Line 3061 with \Y. ---/
|
Line 3033 with \Y. ---/
|
/^(ab (c+(*FAIL)cd) | xyz)/x |
/^(ab (c+(*FAIL)cd) | xyz)/x |
abcccd |
abcccd |
|
|
/--- Perl 5.11 gets some of these wrong ---/ | /--- Perl gets some of these wrong ---/ |
|
|
/(?>.(*ACCEPT))*?5/ |
/(?>.(*ACCEPT))*?5/ |
abcde |
abcde |
Line 3121 with \Y. ---/
|
Line 3093 with \Y. ---/
|
/X\H++\R/BZ |
/X\H++\R/BZ |
X\x0d\x0a |
X\x0d\x0a |
|
|
/-- Perl treats this one differently, not failing the second string. I believe |
|
that is a bug in Perl. --/ |
|
|
|
/^((abc|abcx)(*THEN)y|abcd)/ |
|
abcd |
|
*** Failers |
|
abcxy |
|
|
|
/(?<=abc)def/ |
/(?<=abc)def/ |
abc\P\P |
abc\P\P |
|
|
Line 3427 with \Y. ---/
|
Line 3391 with \Y. ---/
|
|
|
/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS |
/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS |
|
|
/a(*SKIP)c|b(*ACCEPT)|/+SI | /a(*SKIP)c|b(*ACCEPT)|/+S!I |
a |
a |
|
|
/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI |
/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI |
Line 3453 with \Y. ---/
|
Line 3417 with \Y. ---/
|
/a(?:.(*THEN:ABC))*?a/ims |
/a(?:.(*THEN:ABC))*?a/ims |
\Mabbbbbbbbbbbbbbbbbbbbba |
\Mabbbbbbbbbbbbbbbbbbbbba |
|
|
/-- These tests are in agreement with development Perl 5.015, which has fixed |
|
some things, but they don't all work with 5.012, so they aren't in the |
|
Perl-compatible tests. Those after the first come from Perl's own test |
|
files. --/ |
|
|
|
/^((yes|no)(*THEN)(*F))?/ |
|
yes |
|
|
|
/(A (.*) C? (*THEN) | A D) (*FAIL)/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) C? (*THEN) | A D) z/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) C? (*THEN) | A D) \s* z/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) (?:C|) (*THEN) | A D) z/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) C{0,6} (*THEN) | A D) z/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x |
|
AbcdCEBefgBhiBqz |
|
|
|
/(A (.*) (CE){0,6} (*THEN) | A D) z/x |
|
AbcdCEBefgBhiBqz |
|
|
|
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x |
|
AbcdCBefgBhiBqz |
|
|
|
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x |
|
AbcdCBefgBhiBqz |
|
|
|
/-----------------------------------------------/ |
|
|
|
/^(?>a+)(?>(z+))\w/BZ |
/^(?>a+)(?>(z+))\w/BZ |
aaaazzzzb |
aaaazzzzb |
** Failers |
** Failers |
Line 3751 replaced by single letters. --/
|
Line 3669 replaced by single letters. --/
|
\r\r\r\P |
\r\r\r\P |
\r\r\r\P\P |
\r\r\r\P\P |
|
|
/-- These two are here because Perl does not match: it seems to allow the | "AB(C(D))(E(F))?(?(?=\2)(?=\4))" |
COMMIT to escape from the assertion. --/ | ABCDGHI\O03 |
| |
| /-- These are all run as real matches in test 1; here we are just checking the |
| settings of the anchored and startline bits. --/ |
|
|
/(?=a(*COMMIT)b|ac)ac|ac/ | /(?>.*?a)(?<=ba)/I |
ac | |
|
|
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x | /(?:.*?a)(?<=ba)/I |
ac | |
|
|
"AB(C(D))(E(F))?(?(?=\2)(?=\4))" | /.*?a(*PRUNE)b/I |
ABCDGHI\O03 | |
| /.*?a(*PRUNE)b/sI |
| |
| /^a(*PRUNE)b/sI |
| |
| /.*?a(*SKIP)b/I |
| |
| /(?>.*?a)b/sI |
| |
| /(?>.*?a)b/I |
| |
| /(?>^a)b/sI |
| |
| /(?>.*?)(?<=(abcd)|(wxyz))/I |
| |
| /(?>.*)(?<=(abcd)|(wxyz))/I |
| |
| "(?>.*)foo"I |
| |
| "(?>.*?)foo"I |
| |
| /(?>^abc)/mI |
| |
| /(?>.*abc)/mI |
| |
| /(?:.*abc)/mI |
| |
| /-- Check PCRE_STUDY_EXTRA_NEEDED --/ |
| |
| /.?/S-I |
| |
| /.?/S!I |
| |
| /(?:(a)+(?C1)bb|aa(?C2)b)/ |
| aab\C+ |
| |
| /(?:(a)++(?C1)bb|aa(?C2)b)/ |
| aab\C+ |
|
|
/-- This one is here because Perl does not confine the *COMMIT to the | /(?:(?>(a))(?C1)bb|aa(?C2)b)/ |
assertion, and therefore fails the entire subroutine call. --/ | aab\C+ |
| |
| /(?:(?1)(?C1)x|ab(?C2))((a)){0}/ |
| aab\C+ |
| |
| /(?1)(?C1)((a)(?C2)){0}/ |
| aab\C+ |
| |
| /(?:(a)+(?C1)bb|aa(?C2)b)++/ |
| aab\C+ |
| aab\C+\O2 |
| |
| /(ab)x|ab/ |
| ab\O3 |
| ab\O2 |
| |
| /(ab)/ |
| ab\O3 |
| ab\O2 |
|
|
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/ | /(?<=123)(*MARK:xx)abc/K |
ac | xxxx123a\P\P |
| xxxx123a\P |
| |
| /123\Kabc/ |
| xxxx123a\P\P |
| xxxx123a\P |
| |
| /^(?(?=a)aa|bb)/C |
| bb |
| |
| /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ |
| bb |
| |
| /-- Perl seems to have a bug with this one --/ |
| |
| /aaaaa(*COMMIT)(*PRUNE)b|a+c/ |
| aaaaaac |
| |
| /-- Here are some that Perl treats differently because of the way it handles |
| backtracking verbs. --/ |
| |
| /(?!a(*COMMIT)b)ac|ad/ |
| ac |
| ad |
| |
| /^(?!a(*THEN)b|ac)../ |
| ac |
| ad |
| |
| /^(?=a(*THEN)b|ac)/ |
| ac |
| |
| /\A.*?(?:a|b(*THEN)c)/ |
| ba |
| |
| /\A.*?(?:a|b(*THEN)c)++/ |
| ba |
| |
| /\A.*?(?:a|b(*THEN)c|d)/ |
| ba |
| |
| /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ |
| aac |
| |
| /\A.*?(a|b(*THEN)c)/ |
| ba |
| |
| /^(A(*THEN)B|A(*THEN)D)/ |
| AD |
| |
| /(?!b(*THEN)a)bn|bnn/ |
| bnn |
| |
| /(?(?=b(*SKIP)a)bn|bnn)/ |
| bnn |
| |
| /(?=b(*THEN)a|)bn|bnn/ |
| bnn |
| |
| /-------------------------/ |
| |
| /(*LIMIT_MATCH=12bc)abc/ |
| |
| /(*LIMIT_MATCH=4294967290)abc/ |
| |
| /(*LIMIT_RECURSION=4294967280)abc/I |
| |
| /(a+)*zz/ |
| aaaaaaaaaaaaaz |
| aaaaaaaaaaaaaz\q3000 |
| |
| /(a+)*zz/S- |
| aaaaaaaaaaaaaz\Q10 |
| |
| /(*LIMIT_MATCH=3000)(a+)*zz/I |
| aaaaaaaaaaaaaz |
| aaaaaaaaaaaaaz\q60000 |
| |
| /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I |
| aaaaaaaaaaaaaz |
| |
| /(*LIMIT_MATCH=60000)(a+)*zz/I |
| aaaaaaaaaaaaaz |
| aaaaaaaaaaaaaz\q3000 |
| |
| /(*LIMIT_RECURSION=10)(a+)*zz/IS- |
| aaaaaaaaaaaaaz |
| aaaaaaaaaaaaaz\Q1000 |
| |
| /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS- |
| aaaaaaaaaaaaaz |
| |
| /(*LIMIT_RECURSION=1000)(a+)*zz/IS- |
| aaaaaaaaaaaaaz |
| aaaaaaaaaaaaaz\Q10 |
|
|
/-- End of testinput2 --/ |
/-- End of testinput2 --/ |