I was über lazy at first, so took libs from SM. But actually it's quite easy to compile, so let's update to latest version \o/.
		
			
				
	
	
		
			4066 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4066 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /-- This set of tests is not Perl-compatible. It checks on special features
 | |
|     of PCRE's API, error diagnostics, and the compiled code of some patterns.
 | |
|     It also checks the non-Perl syntax the PCRE supports (Python, .NET, 
 | |
|     Oniguruma). Finally, there are some tests where PCRE and Perl differ, 
 | |
|     either because PCRE can't be compatible, or there is a possible Perl 
 | |
|     bug.
 | |
|     
 | |
|     NOTE: This is a non-UTF set of tests. When UTF support is needed, use
 | |
|     test 5, and if Unicode Property Support is needed, use test 7. --/
 | |
|     
 | |
| < forbid 8W 
 | |
|   
 | |
| /(a)b|/I
 | |
| 
 | |
| /abc/I
 | |
|     abc
 | |
|     defabc
 | |
|     \Aabc
 | |
|     *** Failers
 | |
|     \Adefabc
 | |
|     ABC
 | |
| 
 | |
| /^abc/I
 | |
|     abc
 | |
|     \Aabc
 | |
|     *** Failers
 | |
|     defabc
 | |
|     \Adefabc
 | |
| 
 | |
| /a+bc/I
 | |
| 
 | |
| /a*bc/I
 | |
| 
 | |
| /a{3}bc/I
 | |
| 
 | |
| /(abc|a+z)/I
 | |
| 
 | |
| /^abc$/I
 | |
|     abc
 | |
|     *** Failers
 | |
|     def\nabc
 | |
| 
 | |
| /ab\idef/X
 | |
| 
 | |
| /(?X)ab\idef/X
 | |
| 
 | |
| /x{5,4}/
 | |
| 
 | |
| /z{65536}/
 | |
| 
 | |
| /[abcd/
 | |
| 
 | |
| /(?X)[\B]/
 | |
| 
 | |
| /(?X)[\R]/
 | |
| 
 | |
| /(?X)[\X]/
 | |
| 
 | |
| /[\B]/BZ
 | |
| 
 | |
| /[\R]/BZ
 | |
| 
 | |
| /[\X]/BZ
 | |
| 
 | |
| /[z-a]/
 | |
| 
 | |
| /^*/
 | |
| 
 | |
| /(abc/
 | |
| 
 | |
| /(?# abc/
 | |
| 
 | |
| /(?z)abc/
 | |
| 
 | |
| /.*b/I
 | |
| 
 | |
| /.*?b/I
 | |
| 
 | |
| /cat|dog|elephant/I
 | |
|     this sentence eventually mentions a cat
 | |
|     this sentences rambles on and on for a while and then reaches elephant
 | |
| 
 | |
| /cat|dog|elephant/IS
 | |
|     this sentence eventually mentions a cat
 | |
|     this sentences rambles on and on for a while and then reaches elephant
 | |
| 
 | |
| /cat|dog|elephant/IiS
 | |
|     this sentence eventually mentions a CAT cat
 | |
|     this sentences rambles on and on for a while to elephant ElePhant
 | |
| 
 | |
| /a|[bcd]/IS
 | |
| 
 | |
| /(a|[^\dZ])/IS
 | |
| 
 | |
| /(a|b)*[\s]/IS
 | |
| 
 | |
| /(ab\2)/
 | |
| 
 | |
| /{4,5}abc/
 | |
| 
 | |
| /(a)(b)(c)\2/I
 | |
|     abcb
 | |
|     \O0abcb
 | |
|     \O3abcb
 | |
|     \O6abcb
 | |
|     \O9abcb
 | |
|     \O12abcb
 | |
| 
 | |
| /(a)bc|(a)(b)\2/I
 | |
|     abc
 | |
|     \O0abc
 | |
|     \O3abc
 | |
|     \O6abc
 | |
|     aba
 | |
|     \O0aba
 | |
|     \O3aba
 | |
|     \O6aba
 | |
|     \O9aba
 | |
|     \O12aba
 | |
| 
 | |
| /abc$/IE
 | |
|     abc
 | |
|     *** Failers
 | |
|     abc\n
 | |
|     abc\ndef
 | |
| 
 | |
| /(a)(b)(c)(d)(e)\6/
 | |
| 
 | |
| /the quick brown fox/I
 | |
|     the quick brown fox
 | |
|     this is a line with the quick brown fox
 | |
| 
 | |
| /the quick brown fox/IA
 | |
|     the quick brown fox
 | |
|     *** Failers
 | |
|     this is a line with the quick brown fox
 | |
| 
 | |
| /ab(?z)cd/
 | |
| 
 | |
| /^abc|def/I
 | |
|     abcdef
 | |
|     abcdef\B
 | |
| 
 | |
| /.*((abc)$|(def))/I
 | |
|     defabc
 | |
|     \Zdefabc
 | |
| 
 | |
| /)/
 | |
| 
 | |
| /a[]b/
 | |
| 
 | |
| /[^aeiou ]{3,}/I
 | |
|     co-processors, and for
 | |
| 
 | |
| /<.*>/I
 | |
|     abc<def>ghi<klm>nop
 | |
| 
 | |
| /<.*?>/I
 | |
|     abc<def>ghi<klm>nop
 | |
| 
 | |
| /<.*>/IU
 | |
|     abc<def>ghi<klm>nop
 | |
| 
 | |
| /(?U)<.*>/I
 | |
|     abc<def>ghi<klm>nop
 | |
| 
 | |
| /<.*?>/IU
 | |
|     abc<def>ghi<klm>nop
 | |
| 
 | |
| /={3,}/IU
 | |
|     abc========def
 | |
| 
 | |
| /(?U)={3,}?/I
 | |
|     abc========def
 | |
| 
 | |
| /(?<!bar|cattle)foo/I
 | |
|     foo
 | |
|     catfoo
 | |
|     *** Failers
 | |
|     the barfoo
 | |
|     and cattlefoo
 | |
| 
 | |
| /(?<=a+)b/
 | |
| 
 | |
| /(?<=aaa|b{0,3})b/
 | |
| 
 | |
| /(?<!(foo)a\1)bar/
 | |
| 
 | |
| /(?i)abc/I
 | |
| 
 | |
| /(a|(?m)a)/I
 | |
| 
 | |
| /(?i)^1234/I
 | |
| 
 | |
| /(^b|(?i)^d)/I
 | |
| 
 | |
| /(?s).*/I
 | |
| 
 | |
| /[abcd]/IS
 | |
| 
 | |
| /(?i)[abcd]/IS
 | |
| 
 | |
| /(?m)[xy]|(b|c)/IS
 | |
| 
 | |
| /(^a|^b)/Im
 | |
| 
 | |
| /(?i)(^a|^b)/Im
 | |
| 
 | |
| /(a)(?(1)a|b|c)/
 | |
| 
 | |
| /(?(?=a)a|b|c)/
 | |
| 
 | |
| /(?(1a)/
 | |
| 
 | |
| /(?(1a))/
 | |
| 
 | |
| /(?(?i))/
 | |
| 
 | |
| /(?(abc))/
 | |
| 
 | |
| /(?(?<ab))/
 | |
| 
 | |
| /((?s)blah)\s+\1/I
 | |
| 
 | |
| /((?i)blah)\s+\1/I
 | |
| 
 | |
| /((?i)b)/IDZS
 | |
| 
 | |
| /(a*b|(?i:c*(?-i)d))/IS
 | |
| 
 | |
| /a$/I
 | |
|     a
 | |
|     a\n
 | |
|     *** Failers
 | |
|     \Za
 | |
|     \Za\n
 | |
| 
 | |
| /a$/Im
 | |
|     a
 | |
|     a\n
 | |
|     \Za\n
 | |
|     *** Failers
 | |
|     \Za
 | |
| 
 | |
| /\Aabc/Im
 | |
| 
 | |
| /^abc/Im
 | |
| 
 | |
| /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
 | |
|   aaaaabbbbbcccccdef
 | |
| 
 | |
| /(?<=foo)[ab]/IS
 | |
| 
 | |
| /(?<!foo)(alpha|omega)/IS
 | |
| 
 | |
| /(?!alphabet)[ab]/IS
 | |
| 
 | |
| /(?<=foo\n)^bar/Im
 | |
|     foo\nbarbar
 | |
|     ***Failers
 | |
|     rhubarb
 | |
|     barbell
 | |
|     abc\nbarton
 | |
| 
 | |
| /^(?<=foo\n)bar/Im
 | |
|     foo\nbarbar
 | |
|     ***Failers
 | |
|     rhubarb
 | |
|     barbell
 | |
|     abc\nbarton
 | |
| 
 | |
| /(?>^abc)/Im
 | |
|     abc
 | |
|     def\nabc
 | |
|     *** Failers
 | |
|     defabc
 | |
| 
 | |
| /(?<=ab(c+)d)ef/
 | |
| 
 | |
| /(?<=ab(?<=c+)d)ef/
 | |
| 
 | |
| /(?<=ab(c|de)f)g/
 | |
| 
 | |
| /The next three are in testinput2 because they have variable length branches/
 | |
| 
 | |
| /(?<=bullock|donkey)-cart/I
 | |
|     the bullock-cart
 | |
|     a donkey-cart race
 | |
|     *** Failers
 | |
|     cart
 | |
|     horse-and-cart
 | |
| 
 | |
| /(?<=ab(?i)x|y|z)/I
 | |
| 
 | |
| /(?>.*)(?<=(abcd)|(xyz))/I
 | |
|     alphabetabcd
 | |
|     endingxyz
 | |
| 
 | |
| /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
 | |
|     abxyZZ
 | |
|     abXyZZ
 | |
|     ZZZ
 | |
|     zZZ
 | |
|     bZZ
 | |
|     BZZ
 | |
|     *** Failers
 | |
|     ZZ
 | |
|     abXYZZ
 | |
|     zzz
 | |
|     bzz
 | |
| 
 | |
| /(?<!(foo)a)bar/I
 | |
|     bar
 | |
|     foobbar
 | |
|     *** Failers
 | |
|     fooabar
 | |
| 
 | |
| /This one is here because Perl behaves differently; see also the following/I
 | |
| 
 | |
| /^(a\1?){4}$/I
 | |
|     aaaa
 | |
|     aaaaaa
 | |
|     
 | |
| /Perl does not fail these two for the final subjects. Neither did PCRE until/
 | |
| /release 8.01. The problem is in backtracking into a subpattern that contains/
 | |
| /a recursive reference to itself. PCRE has now made these into atomic patterns./
 | |
| 
 | |
| /^(xa|=?\1a){2}$/
 | |
|     xa=xaa
 | |
|     ** Failers
 | |
|     xa=xaaa
 | |
| 
 | |
| /^(xa|=?\1a)+$/
 | |
|     xa=xaa
 | |
|     ** Failers
 | |
|     xa=xaaa
 | |
| 
 | |
| /These are syntax tests from Perl 5.005/I
 | |
| 
 | |
| /a[b-a]/
 | |
| 
 | |
| /a[]b/
 | |
| 
 | |
| /a[/
 | |
| 
 | |
| /*a/
 | |
| 
 | |
| /(*)b/
 | |
| 
 | |
| /abc)/
 | |
| 
 | |
| /(abc/
 | |
| 
 | |
| /a**/
 | |
| 
 | |
| /)(/
 | |
| 
 | |
| /\1/
 | |
| 
 | |
| /\2/
 | |
| 
 | |
| /(a)|\2/
 | |
| 
 | |
| /a[b-a]/Ii
 | |
| 
 | |
| /a[]b/Ii
 | |
| 
 | |
| /a[/Ii
 | |
| 
 | |
| /*a/Ii
 | |
| 
 | |
| /(*)b/Ii
 | |
| 
 | |
| /abc)/Ii
 | |
| 
 | |
| /(abc/Ii
 | |
| 
 | |
| /a**/Ii
 | |
| 
 | |
| /)(/Ii
 | |
| 
 | |
| /:(?:/
 | |
| 
 | |
| /(?<%)b/
 | |
| 
 | |
| /a(?{)b/
 | |
| 
 | |
| /a(?{{})b/
 | |
| 
 | |
| /a(?{}})b/
 | |
| 
 | |
| /a(?{"{"})b/
 | |
| 
 | |
| /a(?{"{"}})b/
 | |
| 
 | |
| /(?(1?)a|b)/
 | |
| 
 | |
| /[a[:xyz:/
 | |
| 
 | |
| /(?<=x+)y/
 | |
| 
 | |
| /a{37,17}/
 | |
| 
 | |
| /abc/\
 | |
| 
 | |
| /abc/\i
 | |
| 
 | |
| /(a)bc(d)/I
 | |
|     abcd
 | |
|     abcd\C2
 | |
|     abcd\C5
 | |
| 
 | |
| /(.{20})/I
 | |
|     abcdefghijklmnopqrstuvwxyz
 | |
|     abcdefghijklmnopqrstuvwxyz\C1
 | |
|     abcdefghijklmnopqrstuvwxyz\G1
 | |
| 
 | |
| /(.{15})/I
 | |
|     abcdefghijklmnopqrstuvwxyz
 | |
|     abcdefghijklmnopqrstuvwxyz\C1\G1
 | |
| 
 | |
| /(.{16})/I
 | |
|     abcdefghijklmnopqrstuvwxyz
 | |
|     abcdefghijklmnopqrstuvwxyz\C1\G1\L
 | |
| 
 | |
| /^(a|(bc))de(f)/I
 | |
|     adef\G1\G2\G3\G4\L
 | |
|     bcdef\G1\G2\G3\G4\L
 | |
|     adefghijk\C0
 | |
| 
 | |
| /^abc\00def/I
 | |
|     abc\00def\L\C0
 | |
| 
 | |
| /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 | |
| )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 | |
| )?)?)?)?)?)?)?)?)?otherword/I
 | |
| 
 | |
| /.*X/IDZ
 | |
| 
 | |
| /.*X/IDZs
 | |
| 
 | |
| /(.*X|^B)/IDZ
 | |
| 
 | |
| /(.*X|^B)/IDZs
 | |
| 
 | |
| /(?s)(.*X|^B)/IDZ
 | |
| 
 | |
| /(?s:.*X|^B)/IDZ
 | |
| 
 | |
| /\Biss\B/I+
 | |
|     Mississippi
 | |
| 
 | |
| /iss/IG+
 | |
|     Mississippi
 | |
| 
 | |
| /\Biss\B/IG+
 | |
|     Mississippi
 | |
| 
 | |
| /\Biss\B/Ig+
 | |
|     Mississippi
 | |
|     *** Failers
 | |
|     Mississippi\A
 | |
| 
 | |
| /(?<=[Ms])iss/Ig+
 | |
|     Mississippi
 | |
| 
 | |
| /(?<=[Ms])iss/IG+
 | |
|     Mississippi
 | |
| 
 | |
| /^iss/Ig+
 | |
|     ississippi
 | |
| 
 | |
| /.*iss/Ig+
 | |
|     abciss\nxyzisspqr
 | |
| 
 | |
| /.i./I+g
 | |
|     Mississippi
 | |
|     Mississippi\A
 | |
|     Missouri river
 | |
|     Missouri river\A
 | |
| 
 | |
| /^.is/I+g
 | |
|     Mississippi
 | |
| 
 | |
| /^ab\n/Ig+
 | |
|     ab\nab\ncd
 | |
| 
 | |
| /^ab\n/Img+
 | |
|     ab\nab\ncd
 | |
| 
 | |
| /abc/I
 | |
| 
 | |
| /abc|bac/I
 | |
| 
 | |
| /(abc|bac)/I
 | |
| 
 | |
| /(abc|(c|dc))/I
 | |
| 
 | |
| /(abc|(d|de)c)/I
 | |
| 
 | |
| /a*/I
 | |
| 
 | |
| /a+/I
 | |
| 
 | |
| /(baa|a+)/I
 | |
| 
 | |
| /a{0,3}/I
 | |
| 
 | |
| /baa{3,}/I
 | |
| 
 | |
| /"([^\\"]+|\\.)*"/I
 | |
| 
 | |
| /(abc|ab[cd])/I
 | |
| 
 | |
| /(a|.)/I
 | |
| 
 | |
| /a|ba|\w/I
 | |
| 
 | |
| /abc(?=pqr)/I
 | |
| 
 | |
| /...(?<=abc)/I
 | |
| 
 | |
| /abc(?!pqr)/I
 | |
| 
 | |
| /ab./I
 | |
| 
 | |
| /ab[xyz]/I
 | |
| 
 | |
| /abc*/I
 | |
| 
 | |
| /ab.c*/I
 | |
| 
 | |
| /a.c*/I
 | |
| 
 | |
| /.c*/I
 | |
| 
 | |
| /ac*/I
 | |
| 
 | |
| /(a.c*|b.c*)/I
 | |
| 
 | |
| /a.c*|aba/I
 | |
| 
 | |
| /.+a/I
 | |
| 
 | |
| /(?=abcda)a.*/I
 | |
| 
 | |
| /(?=a)a.*/I
 | |
| 
 | |
| /a(b)*/I
 | |
| 
 | |
| /a\d*/I
 | |
| 
 | |
| /ab\d*/I
 | |
| 
 | |
| /a(\d)*/I
 | |
| 
 | |
| /abcde{0,0}/I
 | |
| 
 | |
| /ab\d+/I
 | |
| 
 | |
| /a(?(1)b)(.)/I
 | |
| 
 | |
| /a(?(1)bag|big)(.)/I
 | |
| 
 | |
| /a(?(1)bag|big)*(.)/I
 | |
| 
 | |
| /a(?(1)bag|big)+(.)/I
 | |
| 
 | |
| /a(?(1)b..|b..)(.)/I
 | |
| 
 | |
| /ab\d{0}e/I
 | |
| 
 | |
| /a?b?/I
 | |
|     a
 | |
|     b
 | |
|     ab
 | |
|     \
 | |
|     *** Failers
 | |
|     \N
 | |
| 
 | |
| /|-/I
 | |
|     abcd
 | |
|     -abc
 | |
|     \Nab-c
 | |
|     *** Failers
 | |
|     \Nabc
 | |
| 
 | |
| /^.?abcd/IS
 | |
| 
 | |
| /\(             # ( at start
 | |
|   (?:           # Non-capturing bracket
 | |
|   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
 | |
|   |             # Or
 | |
|   (?R)          # Recurse - i.e. nested bracketed string
 | |
|   )*            # Zero or more contents
 | |
|   \)            # Closing )
 | |
|   /Ix
 | |
|     (abcd)
 | |
|     (abcd)xyz
 | |
|     xyz(abcd)
 | |
|     (ab(xy)cd)pqr
 | |
|     (ab(xycd)pqr
 | |
|     () abc ()
 | |
|     12(abcde(fsh)xyz(foo(bar))lmno)89
 | |
|     *** Failers
 | |
|     abcd
 | |
|     abcd)
 | |
|     (abcd
 | |
| 
 | |
| /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 | |
|     (ab(xy)cd)pqr
 | |
|     1(abcd)(x(y)z)pqr
 | |
| 
 | |
| /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 | |
|     (abcd)
 | |
|     (ab(xy)cd)
 | |
|     (a(b(c)d)e)
 | |
|     ((ab))
 | |
|     *** Failers
 | |
|     ()
 | |
| 
 | |
| /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 | |
|     ()
 | |
|     12(abcde(fsh)xyz(foo(bar))lmno)89
 | |
| 
 | |
| /\(  ( (?>[^()]+) | (?R) )* \) /Ix
 | |
|     (ab(xy)cd)
 | |
| 
 | |
| /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 | |
|     (ab(xy)cd)
 | |
| 
 | |
| /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 | |
|     (ab(xy)cd)
 | |
|     (123ab(xy)cd)
 | |
| 
 | |
| /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 | |
|     (ab(xy)cd)
 | |
|     (123ab(xy)cd)
 | |
| 
 | |
| /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 | |
|     (ab(xy)cd)
 | |
| 
 | |
| /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 | |
|     (abcd(xyz<p>qrs)123)
 | |
| 
 | |
| /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 | |
|     (ab(cd)ef)
 | |
|     (ab(cd(ef)gh)ij)
 | |
| 
 | |
| /^[[:alnum:]]/DZ
 | |
| 
 | |
| /^[[:^alnum:]]/DZ
 | |
| 
 | |
| /^[[:alpha:]]/DZ
 | |
| 
 | |
| /^[[:^alpha:]]/DZ
 | |
| 
 | |
| /[_[:alpha:]]/IS
 | |
| 
 | |
| /^[[:ascii:]]/DZ
 | |
| 
 | |
| /^[[:^ascii:]]/DZ
 | |
| 
 | |
| /^[[:blank:]]/DZ
 | |
| 
 | |
| /^[[:^blank:]]/DZ
 | |
| 
 | |
| /[\n\x0b\x0c\x0d[:blank:]]/IS
 | |
| 
 | |
| /^[[:cntrl:]]/DZ
 | |
| 
 | |
| /^[[:digit:]]/DZ
 | |
| 
 | |
| /^[[:graph:]]/DZ
 | |
| 
 | |
| /^[[:lower:]]/DZ
 | |
| 
 | |
| /^[[:print:]]/DZ
 | |
| 
 | |
| /^[[:punct:]]/DZ
 | |
| 
 | |
| /^[[:space:]]/DZ
 | |
| 
 | |
| /^[[:upper:]]/DZ
 | |
| 
 | |
| /^[[:xdigit:]]/DZ
 | |
| 
 | |
| /^[[:word:]]/DZ
 | |
| 
 | |
| /^[[:^cntrl:]]/DZ
 | |
| 
 | |
| /^[12[:^digit:]]/DZ
 | |
| 
 | |
| /^[[:^blank:]]/DZ
 | |
| 
 | |
| /[01[:alpha:]%]/DZ
 | |
| 
 | |
| /[[.ch.]]/I
 | |
| 
 | |
| /[[=ch=]]/I
 | |
| 
 | |
| /[[:rhubarb:]]/I
 | |
| 
 | |
| /[[:upper:]]/Ii
 | |
|     A
 | |
|     a
 | |
| 
 | |
| /[[:lower:]]/Ii
 | |
|     A
 | |
|     a
 | |
| 
 | |
| /((?-i)[[:lower:]])[[:lower:]]/Ii
 | |
|     ab
 | |
|     aB
 | |
|     *** Failers
 | |
|     Ab
 | |
|     AB
 | |
| 
 | |
| /[\200-\110]/I
 | |
| 
 | |
| /^(?(0)f|b)oo/I
 | |
| 
 | |
| /This one's here because of the large output vector needed/I
 | |
| 
 | |
| /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
 | |
|     \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
 | |
| 
 | |
| /This one's here because Perl does this differently and PCRE can't at present/I
 | |
| 
 | |
| /(main(O)?)+/I
 | |
|     mainmain
 | |
|     mainOmain
 | |
| 
 | |
| /These are all cases where Perl does it differently (nested captures)/I
 | |
| 
 | |
| /^(a(b)?)+$/I
 | |
|     aba
 | |
| 
 | |
| /^(aa(bb)?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(aa|aa(bb))+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(aa(bb)??)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(?:aa(bb)?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(aa(b(b))?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(?:aa(b(b))?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(?:aa(b(?:b))?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(?:aa(bb(?:b))?)+$/I
 | |
|     aabbbaa
 | |
| 
 | |
| /^(?:aa(b(?:bb))?)+$/I
 | |
|     aabbbaa
 | |
| 
 | |
| /^(?:aa(?:b(b))?)+$/I
 | |
|     aabbaa
 | |
| 
 | |
| /^(?:aa(?:b(bb))?)+$/I
 | |
|     aabbbaa
 | |
| 
 | |
| /^(aa(b(bb))?)+$/I
 | |
|     aabbbaa
 | |
| 
 | |
| /^(aa(bb(bb))?)+$/I
 | |
|     aabbbbaa
 | |
| 
 | |
| /--------------------------------------------------------------------/I
 | |
| 
 | |
| /#/IxDZ
 | |
| 
 | |
| /a#/IxDZ
 | |
| 
 | |
| /[\s]/DZ
 | |
| 
 | |
| /[\S]/DZ
 | |
| 
 | |
| /a(?i)b/DZ
 | |
|     ab
 | |
|     aB
 | |
|     *** Failers
 | |
|     AB
 | |
| 
 | |
| /(a(?i)b)/DZ
 | |
|     ab
 | |
|     aB
 | |
|     *** Failers
 | |
|     AB
 | |
| 
 | |
| /   (?i)abc/IxDZ
 | |
| 
 | |
| /#this is a comment
 | |
|   (?i)abc/IxDZ
 | |
| 
 | |
| /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 | |
| 
 | |
| /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 | |
| 
 | |
| /\Q\E/DZ
 | |
|     \
 | |
| 
 | |
| /\Q\Ex/DZ
 | |
| 
 | |
| / \Q\E/DZ
 | |
| 
 | |
| /a\Q\E/DZ
 | |
|   abc
 | |
|   bca
 | |
|   bac
 | |
| 
 | |
| /a\Q\Eb/DZ
 | |
|   abc
 | |
| 
 | |
| /\Q\Eabc/DZ
 | |
| 
 | |
| /x*+\w/DZ
 | |
|     *** Failers
 | |
|     xxxxx
 | |
| 
 | |
| /x?+/DZ
 | |
| 
 | |
| /x++/DZ
 | |
| 
 | |
| /x{1,3}+/BZO
 | |
| 
 | |
| /x{1,3}+/BZOi
 | |
| 
 | |
| /[^x]{1,3}+/BZO
 | |
| 
 | |
| /[^x]{1,3}+/BZOi
 | |
| 
 | |
| /(x)*+/DZ
 | |
| 
 | |
| /^(\w++|\s++)*$/I
 | |
|     now is the time for all good men to come to the aid of the party
 | |
|     *** Failers
 | |
|     this is not a line with only words and spaces!
 | |
| 
 | |
| /(\d++)(\w)/I
 | |
|     12345a
 | |
|     *** Failers
 | |
|     12345+
 | |
| 
 | |
| /a++b/I
 | |
|     aaab
 | |
| 
 | |
| /(a++b)/I
 | |
|     aaab
 | |
| 
 | |
| /(a++)b/I
 | |
|     aaab
 | |
| 
 | |
| /([^()]++|\([^()]*\))+/I
 | |
|     ((abc(ade)ufh()()x
 | |
| 
 | |
| /\(([^()]++|\([^()]+\))+\)/I
 | |
|     (abc)
 | |
|     (abc(def)xyz)
 | |
|     *** Failers
 | |
|     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 | |
| 
 | |
| /(abc){1,3}+/DZ
 | |
| 
 | |
| /a+?+/I
 | |
| 
 | |
| /a{2,3}?+b/I
 | |
| 
 | |
| /(?U)a+?+/I
 | |
| 
 | |
| /a{2,3}?+b/IU
 | |
| 
 | |
| /x(?U)a++b/DZ
 | |
|     xaaaab
 | |
| 
 | |
| /(?U)xa++b/DZ
 | |
|     xaaaab
 | |
| 
 | |
| /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 | |
| 
 | |
| /^x(?U)a+b/DZ
 | |
| 
 | |
| /^x(?U)(a+)b/DZ
 | |
| 
 | |
| /[.x.]/I
 | |
| 
 | |
| /[=x=]/I
 | |
| 
 | |
| /[:x:]/I
 | |
| 
 | |
| /\l/I
 | |
| 
 | |
| /\L/I
 | |
| 
 | |
| /\N{name}/I
 | |
| 
 | |
| /\u/I
 | |
| 
 | |
| /\U/I
 | |
| 
 | |
| /a{1,3}b/U
 | |
|     ab
 | |
| 
 | |
| /[/I
 | |
| 
 | |
| /[a-/I
 | |
| 
 | |
| /[[:space:]/I
 | |
| 
 | |
| /[\s]/IDZ
 | |
| 
 | |
| /[[:space:]]/IDZ
 | |
| 
 | |
| /[[:space:]abcde]/IDZ
 | |
| 
 | |
| /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 | |
|     <>
 | |
|     <abcd>
 | |
|     <abc <123> hij>
 | |
|     <abc <def> hij>
 | |
|     <abc<>def>
 | |
|     <abc<>
 | |
|     *** Failers
 | |
|     <abc
 | |
| 
 | |
| |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 | |
| 
 | |
| |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 | |
| 
 | |
| /(.*)\d+\1/I
 | |
| 
 | |
| /(.*)\d+/I
 | |
| 
 | |
| /(.*)\d+\1/Is
 | |
| 
 | |
| /(.*)\d+/Is
 | |
| 
 | |
| /(.*(xyz))\d+\2/I
 | |
| 
 | |
| /((.*))\d+\1/I
 | |
|     abc123bc
 | |
| 
 | |
| /a[b]/I
 | |
| 
 | |
| /(?=a).*/I
 | |
| 
 | |
| /(?=abc).xyz/IiI
 | |
| 
 | |
| /(?=abc)(?i).xyz/I
 | |
| 
 | |
| /(?=a)(?=b)/I
 | |
| 
 | |
| /(?=.)a/I
 | |
| 
 | |
| /((?=abcda)a)/I
 | |
| 
 | |
| /((?=abcda)ab)/I
 | |
| 
 | |
| /()a/I
 | |
| 
 | |
| /(?(1)ab|ac)(.)/I
 | |
| 
 | |
| /(?(1)abz|acz)(.)/I
 | |
| 
 | |
| /(?(1)abz)(.)/I
 | |
| 
 | |
| /(?(1)abz)(1)23/I
 | |
| 
 | |
| /(a)+/I
 | |
| 
 | |
| /(a){2,3}/I
 | |
| 
 | |
| /(a)*/I
 | |
| 
 | |
| /[a]/I
 | |
| 
 | |
| /[ab]/I
 | |
| 
 | |
| /[ab]/IS
 | |
| 
 | |
| /[^a]/I
 | |
| 
 | |
| /\d456/I
 | |
| 
 | |
| /\d456/IS
 | |
| 
 | |
| /a^b/I
 | |
| 
 | |
| /^a/Im
 | |
|   abcde
 | |
|   xy\nabc
 | |
|   *** Failers
 | |
|   xyabc
 | |
| 
 | |
| /c|abc/I
 | |
| 
 | |
| /(?i)[ab]/IS
 | |
| 
 | |
| /[ab](?i)cd/IS
 | |
| 
 | |
| /abc(?C)def/I
 | |
|     abcdef
 | |
|     1234abcdef
 | |
|     *** Failers
 | |
|     abcxyz
 | |
|     abcxyzf
 | |
| 
 | |
| /abc(?C)de(?C1)f/I
 | |
|     123abcdef
 | |
| 
 | |
| /(?C1)\dabc(?C2)def/IS
 | |
|     1234abcdef
 | |
|     *** Failers
 | |
|     abcdef
 | |
| 
 | |
| /(?C1)\dabc(?C2)def/ISS
 | |
|     1234abcdef
 | |
|     *** Failers
 | |
|     abcdef
 | |
| 
 | |
| /(?C255)ab/I
 | |
| 
 | |
| /(?C256)ab/I
 | |
| 
 | |
| /(?Cab)xx/I
 | |
| 
 | |
| /(?C12vr)x/I
 | |
| 
 | |
| /abc(?C)def/I
 | |
|     *** Failers
 | |
|     \x83\x0\x61bcdef
 | |
| 
 | |
| /(abc)(?C)de(?C1)f/I
 | |
|     123abcdef
 | |
|     123abcdef\C+
 | |
|     123abcdef\C-
 | |
|     *** Failers
 | |
|     123abcdef\C!1
 | |
| 
 | |
| /(?C0)(abc(?C1))*/I
 | |
|     abcabcabc
 | |
|     abcabc\C!1!3
 | |
|     *** Failers
 | |
|     abcabcabc\C!1!3
 | |
| 
 | |
| /(\d{3}(?C))*/I
 | |
|     123\C+
 | |
|     123456\C+
 | |
|     123456789\C+
 | |
| 
 | |
| /((xyz)(?C)p|(?C1)xyzabc)/I
 | |
|     xyzabc\C+
 | |
| 
 | |
| /(X)((xyz)(?C)p|(?C1)xyzabc)/I
 | |
|     Xxyzabc\C+
 | |
| 
 | |
| /(?=(abc))(?C)abcdef/I
 | |
|     abcdef\C+
 | |
| 
 | |
| /(?!(abc)(?C1)d)(?C2)abcxyz/I
 | |
|     abcxyz\C+
 | |
| 
 | |
| /(?<=(abc)(?C))xyz/I
 | |
|    abcxyz\C+
 | |
| 
 | |
| /a(b+)(c*)(?C1)/I
 | |
|     abbbbbccc\C*1
 | |
| 
 | |
| /a(b+?)(c*?)(?C1)/I
 | |
|     abbbbbccc\C*1
 | |
| 
 | |
| /(?C)abc/I
 | |
| 
 | |
| /(?C)^abc/I
 | |
| 
 | |
| /(?C)a|b/IS
 | |
| 
 | |
| /(?R)/I
 | |
| 
 | |
| /(a|(?R))/I
 | |
| 
 | |
| /(ab|(bc|(de|(?R))))/I
 | |
| 
 | |
| /x(ab|(bc|(de|(?R))))/I
 | |
|     xab
 | |
|     xbc
 | |
|     xde
 | |
|     xxab
 | |
|     xxxab
 | |
|     *** Failers
 | |
|     xyab
 | |
| 
 | |
| /(ab|(bc|(de|(?1))))/I
 | |
| 
 | |
| /x(ab|(bc|(de|(?1)x)x)x)/I
 | |
| 
 | |
| /^([^()]|\((?1)*\))*$/I
 | |
|     abc
 | |
|     a(b)c
 | |
|     a(b(c))d
 | |
|     *** Failers)
 | |
|     a(b(c)d
 | |
| 
 | |
| /^>abc>([^()]|\((?1)*\))*<xyz<$/I
 | |
|    >abc>123<xyz<
 | |
|    >abc>1(2)3<xyz<
 | |
|    >abc>(1(2)3)<xyz<
 | |
| 
 | |
| /(a(?1)b)/DZ
 | |
| 
 | |
| /(a(?1)+b)/DZ
 | |
| 
 | |
| /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 | |
|     12
 | |
|     (((2+2)*-3)-7)
 | |
|     -12
 | |
|     *** Failers
 | |
|     ((2+2)*-3)-7)
 | |
| 
 | |
| /^(x(y|(?1){2})z)/I
 | |
|     xyz
 | |
|     xxyzxyzz
 | |
|     *** Failers
 | |
|     xxyzz
 | |
|     xxyzxyzxyzz
 | |
| 
 | |
| /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 | |
|     <>
 | |
|     <abcd>
 | |
|     <abc <123> hij>
 | |
|     <abc <def> hij>
 | |
|     <abc<>def>
 | |
|     <abc<>
 | |
|     *** Failers
 | |
|     <abc
 | |
| 
 | |
| /(?1)/I
 | |
| 
 | |
| /((?2)(abc)/I
 | |
| 
 | |
| /^(abc)def(?1)/I
 | |
|     abcdefabc
 | |
| 
 | |
| /^(a|b|c)=(?1)+/I
 | |
|     a=a
 | |
|     a=b
 | |
|     a=bc
 | |
| 
 | |
| /^(a|b|c)=((?1))+/I
 | |
|     a=a
 | |
|     a=b
 | |
|     a=bc
 | |
| 
 | |
| /a(?P<name1>b|c)d(?P<longername2>e)/DZ
 | |
|     abde
 | |
|     acde
 | |
| 
 | |
| /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 | |
| 
 | |
| /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 | |
| 
 | |
| /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
 | |
|     1221
 | |
|     Satan, oscillate my metallic sonatas!
 | |
|     A man, a plan, a canal: Panama!
 | |
|     Able was I ere I saw Elba.
 | |
|     *** Failers
 | |
|     The quick brown fox
 | |
| 
 | |
| /((?(R)a|b))\1(?1)?/I
 | |
|   bb
 | |
|   bbaa
 | |
| 
 | |
| /(.*)a/Is
 | |
| 
 | |
| /(.*)a\1/Is
 | |
| 
 | |
| /(.*)a(b)\2/Is
 | |
| 
 | |
| /((.*)a|(.*)b)z/Is
 | |
| 
 | |
| /((.*)a|(.*)b)z\1/Is
 | |
| 
 | |
| /((.*)a|(.*)b)z\2/Is
 | |
| 
 | |
| /((.*)a|(.*)b)z\3/Is
 | |
| 
 | |
| /((.*)a|^(.*)b)z\3/Is
 | |
| 
 | |
| /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 | |
| 
 | |
| /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 | |
| 
 | |
| /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 | |
| 
 | |
| /(a)(bc)/INDZ
 | |
|   abc
 | |
| 
 | |
| /(?P<one>a)(bc)/INDZ
 | |
|   abc
 | |
| 
 | |
| /(a)(?P<named>bc)/INDZ
 | |
| 
 | |
| /(a+)*zz/I
 | |
|   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
 | |
|   aaaaaaaaaaaaaz\M
 | |
| 
 | |
| /(aaa(?C1)bbb|ab)/I
 | |
|    aaabbb
 | |
|    aaabbb\C*0
 | |
|    aaabbb\C*1
 | |
|    aaabbb\C*-1
 | |
| 
 | |
| /ab(?P<one>cd)ef(?P<two>gh)/I
 | |
|     abcdefgh
 | |
|     abcdefgh\C1\Gtwo
 | |
|     abcdefgh\Cone\Ctwo
 | |
|     abcdefgh\Cthree
 | |
| 
 | |
| /(?P<Tes>)(?P<Test>)/DZ
 | |
| 
 | |
| /(?P<Test>)(?P<Tes>)/DZ
 | |
| 
 | |
| /(?P<Z>zz)(?P<A>aa)/I
 | |
|     zzaa\CZ
 | |
|     zzaa\CA
 | |
| 
 | |
| /(?P<x>eks)(?P<x>eccs)/I
 | |
| 
 | |
| /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 | |
| 
 | |
| "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 | |
|     [10,20,30,5,5,4,4,2,43,23,4234]
 | |
|     *** Failers
 | |
|     []
 | |
| 
 | |
| "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
 | |
|     [10,20,30,5,5,4,4,2,43,23,4234]
 | |
|     []
 | |
| 
 | |
| /(a(b(?2)c))?/DZ
 | |
| 
 | |
| /(a(b(?2)c))*/DZ
 | |
| 
 | |
| /(a(b(?2)c)){0,2}/DZ
 | |
| 
 | |
| /[ab]{1}+/DZ
 | |
| 
 | |
| /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
 | |
|      Baby Bjorn Active Carrier - With free SHIPPING!!
 | |
| 
 | |
| /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
 | |
|      Baby Bjorn Active Carrier - With free SHIPPING!!
 | |
| 
 | |
| /a*.*b/ISDZ
 | |
| 
 | |
| /(a|b)*.?c/ISDZ
 | |
| 
 | |
| /abc(?C255)de(?C)f/DZ
 | |
| 
 | |
| /abcde/ICDZ
 | |
|   abcde
 | |
|   abcdfe
 | |
| 
 | |
| /a*b/ICDZS
 | |
|   ab
 | |
|   aaaab
 | |
|   aaaacb
 | |
| 
 | |
| /a*b/ICDZSS
 | |
|   ab
 | |
|   aaaab
 | |
|   aaaacb
 | |
| 
 | |
| /a+b/ICDZ
 | |
|   ab
 | |
|   aaaab
 | |
|   aaaacb
 | |
| 
 | |
| /(abc|def)x/ICDZS
 | |
|   abcx
 | |
|   defx
 | |
|   ** Failers 
 | |
|   abcdefzx
 | |
| 
 | |
| /(abc|def)x/ICDZSS
 | |
|   abcx
 | |
|   defx
 | |
|   ** Failers 
 | |
|   abcdefzx
 | |
| 
 | |
| /(ab|cd){3,4}/IC
 | |
|   ababab
 | |
|   abcdabcd
 | |
|   abcdcdcdcdcd
 | |
| 
 | |
| /([ab]{,4}c|xy)/ICDZS
 | |
|     Note: that { does NOT introduce a quantifier
 | |
| 
 | |
| /([ab]{,4}c|xy)/ICDZSS
 | |
|     Note: that { does NOT introduce a quantifier
 | |
| 
 | |
| /([ab]{1,4}c|xy){4,5}?123/ICDZ
 | |
|     aacaacaacaacaac123
 | |
| 
 | |
| /\b.*/I
 | |
|   ab cd\>1
 | |
| 
 | |
| /\b.*/Is
 | |
|   ab cd\>1
 | |
| 
 | |
| /(?!.bcd).*/I
 | |
|   Xbcd12345
 | |
| 
 | |
| /abcde/I
 | |
|     ab\P
 | |
|     abc\P
 | |
|     abcd\P
 | |
|     abcde\P
 | |
|     the quick brown abc\P
 | |
|     ** Failers\P
 | |
|     the quick brown abxyz fox\P
 | |
| 
 | |
| "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
 | |
|     13/05/04\P
 | |
|     13/5/2004\P
 | |
|     02/05/09\P
 | |
|     1\P
 | |
|     1/2\P
 | |
|     1/2/0\P
 | |
|     1/2/04\P
 | |
|     0\P
 | |
|     02/\P
 | |
|     02/0\P
 | |
|     02/1\P
 | |
|     ** Failers\P
 | |
|     \P
 | |
|     123\P
 | |
|     33/4/04\P
 | |
|     3/13/04\P
 | |
|     0/1/2003\P
 | |
|     0/\P
 | |
|     02/0/\P
 | |
|     02/13\P
 | |
| 
 | |
| /0{0,2}ABC/I
 | |
| 
 | |
| /\d{3,}ABC/I
 | |
| 
 | |
| /\d*ABC/I
 | |
| 
 | |
| /[abc]+DE/I
 | |
| 
 | |
| /[abc]?123/I
 | |
|     123\P
 | |
|     a\P
 | |
|     b\P
 | |
|     c\P
 | |
|     c12\P
 | |
|     c123\P
 | |
| 
 | |
| /^(?:\d){3,5}X/I
 | |
|     1\P
 | |
|     123\P
 | |
|     123X
 | |
|     1234\P
 | |
|     1234X
 | |
|     12345\P
 | |
|     12345X
 | |
|     *** Failers
 | |
|     1X
 | |
|     123456\P
 | |
| 
 | |
| /abc/IS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     bca
 | |
| 
 | |
| /abc/ISS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     bca
 | |
| 
 | |
| /abc/IFS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     bca
 | |
| 
 | |
| /abc/IFSS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     bca
 | |
| 
 | |
| /(a|b)/IS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     def
 | |
| 
 | |
| /(a|b)/ISS>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     def
 | |
| 
 | |
| /(a|b)/ISF>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     def
 | |
| 
 | |
| /(a|b)/ISSF>testsavedregex
 | |
| <testsavedregex
 | |
|     abc
 | |
|     ** Failers
 | |
|     def
 | |
| 
 | |
| ~<(\w+)/?>(.)*</(\1)>~smgI
 | |
|     \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
 | |
| 
 | |
| /^a/IF
 | |
| 
 | |
| /line\nbreak/I
 | |
|     this is a line\nbreak
 | |
|     line one\nthis is a line\nbreak in the second line
 | |
| 
 | |
| /line\nbreak/If
 | |
|     this is a line\nbreak
 | |
|     ** Failers
 | |
|     line one\nthis is a line\nbreak in the second line
 | |
| 
 | |
| /line\nbreak/Imf
 | |
|     this is a line\nbreak
 | |
|     ** Failers
 | |
|     line one\nthis is a line\nbreak in the second line
 | |
| 
 | |
| /(?i)(?-i)AbCd/I
 | |
|     AbCd
 | |
|     ** Failers
 | |
|     abcd
 | |
| 
 | |
| /a{11111111111111111111}/I
 | |
| 
 | |
| /(){64294967295}/I
 | |
| 
 | |
| /(){2,4294967295}/I
 | |
| 
 | |
| "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
 | |
|     abcdefghijklAkB
 | |
| 
 | |
| "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
 | |
|     abcdefghijklAkB
 | |
| 
 | |
| "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
 | |
|     abcdefghijklAkB
 | |
| 
 | |
| "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
 | |
|     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 | |
| 
 | |
| "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
 | |
|     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 | |
| 
 | |
| /[^()]*(?:\((?R)\)[^()]*)*/I
 | |
|     (this(and)that
 | |
|     (this(and)that)
 | |
|     (this(and)that)stuff
 | |
| 
 | |
| /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 | |
|     (this(and)that
 | |
|     (this(and)that)
 | |
| 
 | |
| /[^()]*(?:\((?R)\))*[^()]*/I
 | |
|     (this(and)that
 | |
|     (this(and)that)
 | |
| 
 | |
| /(?:\((?R)\))*[^()]*/I
 | |
|     (this(and)that
 | |
|     (this(and)that)
 | |
|     ((this))
 | |
| 
 | |
| /(?:\((?R)\))|[^()]*/I
 | |
|     (this(and)that
 | |
|     (this(and)that)
 | |
|     (this)
 | |
|     ((this))
 | |
| 
 | |
| /\x{0000ff}/I
 | |
| 
 | |
| /^((?P<A>a1)|(?P<A>a2)b)/I
 | |
| 
 | |
| /^((?P<A>a1)|(?P<A>a2)b)/IJ
 | |
|     a1b\CA
 | |
|     a2b\CA
 | |
|     ** Failers
 | |
|     a1b\CZ\CA
 | |
|     
 | |
| /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)/IJ
 | |
|     ab\CA
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)|cd/IJ
 | |
|     ab\CA
 | |
|     cd\CA
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 | |
|     cdefgh\CA
 | |
| 
 | |
| /^((?P<A>a1)|(?P<A>a2)b)/IJ
 | |
|     a1b\GA
 | |
|     a2b\GA
 | |
|     ** Failers
 | |
|     a1b\GZ\GA
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)/IJ
 | |
|     ab\GA
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)|cd/IJ
 | |
|     ab\GA
 | |
|     cd\GA
 | |
| 
 | |
| /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 | |
|     cdefgh\GA
 | |
| 
 | |
| /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
 | |
|     a1b\CA
 | |
|     a2b\CA
 | |
| 
 | |
| /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
 | |
| 
 | |
| / In this next test, J is not set at the outer level; consequently it isn't
 | |
| set in the pattern's options; consequently pcre_get_named_substring() produces
 | |
| a random value. /Ix
 | |
| 
 | |
| /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
 | |
|     a bc d\CA\CB\CC
 | |
| 
 | |
| /^(?P<A>a)?(?(A)a|b)/I
 | |
|     aabc
 | |
|     bc
 | |
|     ** Failers
 | |
|     abc
 | |
| 
 | |
| /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
 | |
|     bXaX
 | |
| 
 | |
| /(?:(?(2y)a|b)(X))+/I
 | |
| 
 | |
| /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 | |
| 
 | |
| /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
 | |
|     bbXaaX
 | |
| 
 | |
| /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
 | |
|     (b)\\Xa\\X
 | |
| 
 | |
| /(?P<ABC/I
 | |
| 
 | |
| /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 | |
|     bXXaYYaY
 | |
|     bXYaXXaX
 | |
| 
 | |
| /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 | |
|     bXXaYYaY
 | |
| 
 | |
| /\s*,\s*/IS
 | |
|     \x0b,\x0b
 | |
|     \x0c,\x0d
 | |
| 
 | |
| /^abc/Im
 | |
|     xyz\nabc
 | |
|     xyz\nabc\<lf>
 | |
|     xyz\r\nabc\<lf>
 | |
|     xyz\rabc\<cr>
 | |
|     xyz\r\nabc\<crlf>
 | |
|     ** Failers
 | |
|     xyz\nabc\<cr>
 | |
|     xyz\r\nabc\<cr>
 | |
|     xyz\nabc\<crlf>
 | |
|     xyz\rabc\<crlf>
 | |
|     xyz\rabc\<lf>
 | |
| 
 | |
| /abc$/Im<lf>
 | |
|     xyzabc
 | |
|     xyzabc\n
 | |
|     xyzabc\npqr
 | |
|     xyzabc\r\<cr>
 | |
|     xyzabc\rpqr\<cr>
 | |
|     xyzabc\r\n\<crlf>
 | |
|     xyzabc\r\npqr\<crlf>
 | |
|     ** Failers
 | |
|     xyzabc\r
 | |
|     xyzabc\rpqr
 | |
|     xyzabc\r\n
 | |
|     xyzabc\r\npqr
 | |
| 
 | |
| /^abc/Im<cr>
 | |
|     xyz\rabcdef
 | |
|     xyz\nabcdef\<lf>
 | |
|     ** Failers
 | |
|     xyz\nabcdef
 | |
| 
 | |
| /^abc/Im<lf>
 | |
|     xyz\nabcdef
 | |
|     xyz\rabcdef\<cr>
 | |
|     ** Failers
 | |
|     xyz\rabcdef
 | |
| 
 | |
| /^abc/Im<crlf>
 | |
|     xyz\r\nabcdef
 | |
|     xyz\rabcdef\<cr>
 | |
|     ** Failers
 | |
|     xyz\rabcdef
 | |
| 
 | |
| /^abc/Im<bad>
 | |
| 
 | |
| /abc/I
 | |
|     xyz\rabc\<bad>
 | |
|     abc
 | |
| 
 | |
| /.*/I<lf>
 | |
|     abc\ndef
 | |
|     abc\rdef
 | |
|     abc\r\ndef
 | |
|     \<cr>abc\ndef
 | |
|     \<cr>abc\rdef
 | |
|     \<cr>abc\r\ndef
 | |
|     \<crlf>abc\ndef
 | |
|     \<crlf>abc\rdef
 | |
|     \<crlf>abc\r\ndef
 | |
| 
 | |
| /\w+(.)(.)?def/Is
 | |
|     abc\ndef
 | |
|     abc\rdef
 | |
|     abc\r\ndef
 | |
| 
 | |
| +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 | |
|    /* this is a C style comment */\M
 | |
| 
 | |
| /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
 | |
| 
 | |
| /()()()()()()()()()()()()()()()()()()()()
 | |
|  ()()()()()()()()()()()()()()()()()()()()
 | |
|  ()()()()()()()()()()()()()()()()()()()()
 | |
|  ()()()()()()()()()()()()()()()()()()()()
 | |
|  ()()()()()()()()()()()()()()()()()()()()
 | |
|  (.(.))/Ix
 | |
|     XY\O400
 | |
| 
 | |
| /(a*b|(?i:c*(?-i)d))/IS
 | |
| 
 | |
| /()[ab]xyz/IS
 | |
| 
 | |
| /(|)[ab]xyz/IS
 | |
| 
 | |
| /(|c)[ab]xyz/IS
 | |
| 
 | |
| /(|c?)[ab]xyz/IS
 | |
| 
 | |
| /(d?|c?)[ab]xyz/IS
 | |
| 
 | |
| /(d?|c)[ab]xyz/IS
 | |
| 
 | |
| /^a*b\d/DZ
 | |
| 
 | |
| /^a*+b\d/DZ
 | |
| 
 | |
| /^a*?b\d/DZ
 | |
| 
 | |
| /^a+A\d/DZ
 | |
|     aaaA5
 | |
|     ** Failers
 | |
|     aaaa5
 | |
| 
 | |
| /^a*A\d/IiDZ
 | |
|     aaaA5
 | |
|     aaaa5
 | |
| 
 | |
| /(a*|b*)[cd]/IS
 | |
| 
 | |
| /(a+|b*)[cd]/IS
 | |
| 
 | |
| /(a*|b+)[cd]/IS
 | |
| 
 | |
| /(a+|b+)[cd]/IS
 | |
| 
 | |
| /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 | |
|  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 | |
|  (((
 | |
|  a
 | |
|  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 | |
|  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 | |
|  )))
 | |
| /Ix
 | |
|   large nest
 | |
| 
 | |
| /a*\d/BZ
 | |
| 
 | |
| /a*\D/BZ
 | |
| 
 | |
| /0*\d/BZ
 | |
| 
 | |
| /0*\D/BZ
 | |
| 
 | |
| /a*\s/BZ
 | |
| 
 | |
| /a*\S/BZ
 | |
| 
 | |
| / *\s/BZ
 | |
| 
 | |
| / *\S/BZ
 | |
| 
 | |
| /a*\w/BZ
 | |
| 
 | |
| /a*\W/BZ
 | |
| 
 | |
| /=*\w/BZ
 | |
| 
 | |
| /=*\W/BZ
 | |
| 
 | |
| /\d*a/BZ
 | |
| 
 | |
| /\d*2/BZ
 | |
| 
 | |
| /\d*\d/BZ
 | |
| 
 | |
| /\d*\D/BZ
 | |
| 
 | |
| /\d*\s/BZ
 | |
| 
 | |
| /\d*\S/BZ
 | |
| 
 | |
| /\d*\w/BZ
 | |
| 
 | |
| /\d*\W/BZ
 | |
| 
 | |
| /\D*a/BZ
 | |
| 
 | |
| /\D*2/BZ
 | |
| 
 | |
| /\D*\d/BZ
 | |
| 
 | |
| /\D*\D/BZ
 | |
| 
 | |
| /\D*\s/BZ
 | |
| 
 | |
| /\D*\S/BZ
 | |
| 
 | |
| /\D*\w/BZ
 | |
| 
 | |
| /\D*\W/BZ
 | |
| 
 | |
| /\s*a/BZ
 | |
| 
 | |
| /\s*2/BZ
 | |
| 
 | |
| /\s*\d/BZ
 | |
| 
 | |
| /\s*\D/BZ
 | |
| 
 | |
| /\s*\s/BZ
 | |
| 
 | |
| /\s*\S/BZ
 | |
| 
 | |
| /\s*\w/BZ
 | |
| 
 | |
| /\s*\W/BZ
 | |
| 
 | |
| /\S*a/BZ
 | |
| 
 | |
| /\S*2/BZ
 | |
| 
 | |
| /\S*\d/BZ
 | |
| 
 | |
| /\S*\D/BZ
 | |
| 
 | |
| /\S*\s/BZ
 | |
| 
 | |
| /\S*\S/BZ
 | |
| 
 | |
| /\S*\w/BZ
 | |
| 
 | |
| /\S*\W/BZ
 | |
| 
 | |
| /\w*a/BZ
 | |
| 
 | |
| /\w*2/BZ
 | |
| 
 | |
| /\w*\d/BZ
 | |
| 
 | |
| /\w*\D/BZ
 | |
| 
 | |
| /\w*\s/BZ
 | |
| 
 | |
| /\w*\S/BZ
 | |
| 
 | |
| /\w*\w/BZ
 | |
| 
 | |
| /\w*\W/BZ
 | |
| 
 | |
| /\W*a/BZ
 | |
| 
 | |
| /\W*2/BZ
 | |
| 
 | |
| /\W*\d/BZ
 | |
| 
 | |
| /\W*\D/BZ
 | |
| 
 | |
| /\W*\s/BZ
 | |
| 
 | |
| /\W*\S/BZ
 | |
| 
 | |
| /\W*\w/BZ
 | |
| 
 | |
| /\W*\W/BZ
 | |
| 
 | |
| /[^a]+a/BZ
 | |
| 
 | |
| /[^a]+a/BZi
 | |
| 
 | |
| /[^a]+A/BZi
 | |
| 
 | |
| /[^a]+b/BZ
 | |
| 
 | |
| /[^a]+\d/BZ
 | |
| 
 | |
| /a*[^a]/BZ
 | |
| 
 | |
| /(?P<abc>x)(?P<xyz>y)/I
 | |
|     xy\Cabc\Cxyz
 | |
| 
 | |
| /(?<abc>x)(?'xyz'y)/I
 | |
|     xy\Cabc\Cxyz
 | |
| 
 | |
| /(?<abc'x)(?'xyz'y)/I
 | |
| 
 | |
| /(?<abc>x)(?'xyz>y)/I
 | |
| 
 | |
| /(?P'abc'x)(?P<xyz>y)/I
 | |
| 
 | |
| /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
 | |
|     bXaX
 | |
|     bXbX
 | |
|     ** Failers
 | |
|     aXaX
 | |
|     aXbX
 | |
| 
 | |
| /^(?P>abc)(?<abcd>xxx)/
 | |
| 
 | |
| /^(?P>abc)(?<abc>x|y)/
 | |
|     xx
 | |
|     xy
 | |
|     yy
 | |
|     yx
 | |
| 
 | |
| /^(?P>abc)(?P<abc>x|y)/
 | |
|     xx
 | |
|     xy
 | |
|     yy
 | |
|     yx
 | |
| 
 | |
| /^((?(abc)a|b)(?<abc>x|y))+/
 | |
|     bxay
 | |
|     bxby
 | |
|     ** Failers
 | |
|     axby
 | |
| 
 | |
| /^(((?P=abc)|X)(?<abc>x|y))+/
 | |
|     XxXxxx
 | |
|     XxXyyx
 | |
|     XxXyxx
 | |
|     ** Failers
 | |
|     x
 | |
| 
 | |
| /^(?1)(abc)/
 | |
|     abcabc
 | |
| 
 | |
| /^(?:(?:\1|X)(a|b))+/
 | |
|     Xaaa
 | |
|     Xaba
 | |
| 
 | |
| /^[\E\Qa\E-\Qz\E]+/BZ
 | |
| 
 | |
| /^[a\Q]bc\E]/BZ
 | |
| 
 | |
| /^[a-\Q\E]/BZ
 | |
| 
 | |
| /^(?P>abc)[()](?<abc>)/BZ
 | |
| 
 | |
| /^((?(abc)y)[()](?P<abc>x))+/BZ
 | |
|     (xy)x
 | |
| 
 | |
| /^(?P>abc)\Q()\E(?<abc>)/BZ
 | |
| 
 | |
| /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
 | |
| 
 | |
| /^(?P>abc) # this is (a comment)
 | |
|   (?<abc>)/BZx
 | |
| 
 | |
| /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
 | |
|     1221
 | |
|     Satan, oscillate my metallic sonatas!
 | |
|     A man, a plan, a canal: Panama!
 | |
|     Able was I ere I saw Elba.
 | |
|     *** Failers
 | |
|     The quick brown fox
 | |
| 
 | |
| /(?=(\w+))\1:/I
 | |
|     abcd:
 | |
| 
 | |
| /(?=(?'abc'\w+))\k<abc>:/I
 | |
|     abcd:
 | |
| 
 | |
| /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
 | |
|     adaa
 | |
|     ** Failers
 | |
|     addd
 | |
|     adbb
 | |
| 
 | |
| /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
 | |
|     bdaa
 | |
|     bdab
 | |
|     ** Failers
 | |
|     bddd
 | |
| 
 | |
| /(?(<bc))/
 | |
| 
 | |
| /(?(''))/
 | |
| 
 | |
| /(?('R')stuff)/
 | |
| 
 | |
| /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
 | |
|     abcabc1Xabc2XabcXabcabc
 | |
| 
 | |
| /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 | |
|     abcabc1Xabc2XabcXabcabc
 | |
| 
 | |
| /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 | |
| 
 | |
| /^(?(DEFINE) abc | xyz ) /x
 | |
| 
 | |
| /(?(DEFINE) abc) xyz/xI
 | |
| 
 | |
| /(a|)*\d/
 | |
|   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 | |
|   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 | |
| 
 | |
| /^a.b/<lf>
 | |
|     a\rb
 | |
|     a\nb\<cr>
 | |
|     a\x85b\<anycrlf> 
 | |
|     ** Failers
 | |
|     a\nb
 | |
|     a\nb\<any>
 | |
|     a\rb\<cr>
 | |
|     a\rb\<any>
 | |
|     a\x85b\<any> 
 | |
|     a\rb\<anycrlf>
 | |
| 
 | |
| /^abc./mgx<any>
 | |
|     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
 | |
| 
 | |
| /abc.$/mgx<any>
 | |
|     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
 | |
| 
 | |
| /a/<cr><any>
 | |
| 
 | |
| /a/<any><crlf>
 | |
| 
 | |
| /^a\Rb/<bsr_unicode>
 | |
|     a\nb
 | |
|     a\rb
 | |
|     a\r\nb
 | |
|     a\x0bb
 | |
|     a\x0cb
 | |
|     a\x85b
 | |
|     ** Failers
 | |
|     a\n\rb
 | |
| 
 | |
| /^a\R*b/<bsr_unicode>
 | |
|     ab
 | |
|     a\nb
 | |
|     a\rb
 | |
|     a\r\nb
 | |
|     a\x0bb
 | |
|     a\x0cb
 | |
|     a\x85b
 | |
|     a\n\rb
 | |
|     a\n\r\x85\x0cb
 | |
| 
 | |
| /^a\R+b/<bsr_unicode>
 | |
|     a\nb
 | |
|     a\rb
 | |
|     a\r\nb
 | |
|     a\x0bb
 | |
|     a\x0cb
 | |
|     a\x85b
 | |
|     a\n\rb
 | |
|     a\n\r\x85\x0cb
 | |
|     ** Failers
 | |
|     ab
 | |
| 
 | |
| /^a\R{1,3}b/<bsr_unicode>
 | |
|     a\nb
 | |
|     a\n\rb
 | |
|     a\n\r\x85b
 | |
|     a\r\n\r\nb
 | |
|     a\r\n\r\n\r\nb
 | |
|     a\n\r\n\rb
 | |
|     a\n\n\r\nb
 | |
|     ** Failers
 | |
|     a\n\n\n\rb
 | |
|     a\r
 | |
| 
 | |
| /^a[\R]b/<bsr_unicode>
 | |
|     aRb
 | |
|     ** Failers
 | |
|     a\nb
 | |
| 
 | |
| /(?&abc)X(?<abc>P)/I
 | |
|     abcPXP123
 | |
| 
 | |
| /(?1)X(?<abc>P)/I
 | |
|     abcPXP123
 | |
| 
 | |
| /(?:a(?&abc)b)*(?<abc>x)/
 | |
|     123axbaxbaxbx456
 | |
|     123axbaxbaxb456
 | |
| 
 | |
| /(?:a(?&abc)b){1,5}(?<abc>x)/
 | |
|     123axbaxbaxbx456
 | |
| 
 | |
| /(?:a(?&abc)b){2,5}(?<abc>x)/
 | |
|     123axbaxbaxbx456
 | |
| 
 | |
| /(?:a(?&abc)b){2,}(?<abc>x)/
 | |
|     123axbaxbaxbx456
 | |
| 
 | |
| /(abc)(?i:(?1))/
 | |
|    defabcabcxyz
 | |
|    DEFabcABCXYZ
 | |
| 
 | |
| /(abc)(?:(?i)(?1))/
 | |
|    defabcabcxyz
 | |
|    DEFabcABCXYZ
 | |
| 
 | |
| /^(a)\g-2/
 | |
| 
 | |
| /^(a)\g/
 | |
| 
 | |
| /^(a)\g{0}/
 | |
| 
 | |
| /^(a)\g{3/
 | |
| 
 | |
| /^(a)\g{aa}/
 | |
| 
 | |
| /^a.b/<lf>
 | |
|     a\rb
 | |
|     *** Failers
 | |
|     a\nb
 | |
| 
 | |
| /.+foo/
 | |
|     afoo
 | |
|     ** Failers
 | |
|     \r\nfoo
 | |
|     \nfoo
 | |
| 
 | |
| /.+foo/<crlf>
 | |
|     afoo
 | |
|     \nfoo
 | |
|     ** Failers
 | |
|     \r\nfoo
 | |
| 
 | |
| /.+foo/<any>
 | |
|     afoo
 | |
|     ** Failers
 | |
|     \nfoo
 | |
|     \r\nfoo
 | |
| 
 | |
| /.+foo/s
 | |
|     afoo
 | |
|     \r\nfoo
 | |
|     \nfoo
 | |
|     
 | |
| /^$/mg<any>
 | |
|     abc\r\rxyz
 | |
|     abc\n\rxyz  
 | |
|     ** Failers 
 | |
|     abc\r\nxyz
 | |
| 
 | |
| /(?m)^$/<any>g+
 | |
|     abc\r\n\r\n
 | |
| 
 | |
| /(?m)^$|^\r\n/<any>g+ 
 | |
|     abc\r\n\r\n
 | |
|     
 | |
| /(?m)$/<any>g+ 
 | |
|     abc\r\n\r\n
 | |
| 
 | |
| /abc.$/mgx<anycrlf>
 | |
|     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
 | |
| 
 | |
| /^X/m
 | |
|     XABC
 | |
|     ** Failers 
 | |
|     XABC\B
 | |
| 
 | |
| /(ab|c)(?-1)/BZ
 | |
|     abc
 | |
| 
 | |
| /xy(?+1)(abc)/BZ
 | |
|     xyabcabc
 | |
|     ** Failers
 | |
|     xyabc  
 | |
|     
 | |
| /x(?-0)y/
 | |
| 
 | |
| /x(?-1)y/
 | |
| 
 | |
| /x(?+0)y/ 
 | |
| 
 | |
| /x(?+1)y/
 | |
| 
 | |
| /^(abc)?(?(-1)X|Y)/BZ
 | |
|     abcX
 | |
|     Y
 | |
|     ** Failers
 | |
|     abcY   
 | |
|     
 | |
| /^((?(+1)X|Y)(abc))+/BZ 
 | |
|     YabcXabc
 | |
|     YabcXabcXabc
 | |
|     ** Failers
 | |
|     XabcXabc  
 | |
| 
 | |
| /(?(-1)a)/BZ
 | |
| 
 | |
| /((?(-1)a))/BZ
 | |
| 
 | |
| /((?(-2)a))/BZ
 | |
| 
 | |
| /^(?(+1)X|Y)(.)/BZ
 | |
|     Y!
 | |
| 
 | |
| /(?<A>tom|bon)-\k{A}/
 | |
|     tom-tom
 | |
|     bon-bon 
 | |
|     ** Failers
 | |
|     tom-bon  
 | |
| 
 | |
| /\g{A/ 
 | |
| 
 | |
| /(?|(abc)|(xyz))/BZ
 | |
|    >abc<
 | |
|    >xyz< 
 | |
| 
 | |
| /(x)(?|(abc)|(xyz))(x)/BZ
 | |
|     xabcx
 | |
|     xxyzx 
 | |
| 
 | |
| /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
 | |
|     xabcpqrx
 | |
|     xxyzx 
 | |
| 
 | |
| /\H++X/BZ
 | |
|     ** Failers
 | |
|     XXXX
 | |
|     
 | |
| /\H+\hY/BZ
 | |
|     XXXX Y 
 | |
| 
 | |
| /\H+ Y/BZ
 | |
| 
 | |
| /\h+A/BZ
 | |
| 
 | |
| /\v*B/BZ
 | |
| 
 | |
| /\V+\x0a/BZ
 | |
| 
 | |
| /A+\h/BZ
 | |
| 
 | |
| / *\H/BZ
 | |
| 
 | |
| /A*\v/BZ
 | |
| 
 | |
| /\x0b*\V/BZ
 | |
| 
 | |
| /\d+\h/BZ
 | |
| 
 | |
| /\d*\v/BZ
 | |
| 
 | |
| /S+\h\S+\v/BZ
 | |
| 
 | |
| /\w{3,}\h\w+\v/BZ
 | |
| 
 | |
| /\h+\d\h+\w\h+\S\h+\H/BZ
 | |
| 
 | |
| /\v+\d\v+\w\v+\S\v+\V/BZ
 | |
| 
 | |
| /\H+\h\H+\d/BZ
 | |
| 
 | |
| /\V+\v\V+\w/BZ
 | |
| 
 | |
| /\( (?: [^()]* | (?R) )* \)/x
 | |
| \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
 | |
| 
 | |
| /[\E]AAA/
 | |
| 
 | |
| /[\Q\E]AAA/
 | |
| 
 | |
| /[^\E]AAA/
 | |
| 
 | |
| /[^\Q\E]AAA/
 | |
| 
 | |
| /[\E^]AAA/
 | |
| 
 | |
| /[\Q\E^]AAA/
 | |
| 
 | |
| /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
 | |
| 
 | |
| /^a+(*FAIL)/C
 | |
|     aaaaaa
 | |
|     
 | |
| /a+b?c+(*FAIL)/C
 | |
|     aaabccc
 | |
| 
 | |
| /a+b?(*PRUNE)c+(*FAIL)/C
 | |
|     aaabccc
 | |
| 
 | |
| /a+b?(*COMMIT)c+(*FAIL)/C
 | |
|     aaabccc
 | |
|     
 | |
| /a+b?(*SKIP)c+(*FAIL)/C
 | |
|     aaabcccaaabccc
 | |
| 
 | |
| /a+b?(*THEN)c+(*FAIL)/C
 | |
|     aaabccc
 | |
|     
 | |
| /a(*MARK)b/ 
 | |
| 
 | |
| /(?i:A{1,}\6666666666)/
 | |
| 
 | |
| /\g6666666666/
 | |
| 
 | |
| /[\g6666666666]/BZ
 | |
| 
 | |
| /(?1)\c[/
 | |
| 
 | |
| /.+A/<crlf>
 | |
|     \r\nA
 | |
|     
 | |
| /\nA/<crlf>
 | |
|     \r\nA 
 | |
| 
 | |
| /[\r\n]A/<crlf>
 | |
|     \r\nA 
 | |
| 
 | |
| /(\r|\n)A/<crlf>
 | |
|     \r\nA 
 | |
| 
 | |
| /a(*CR)b/
 | |
| 
 | |
| /(*CR)a.b/
 | |
|     a\nb
 | |
|     ** Failers
 | |
|     a\rb  
 | |
| 
 | |
| /(*CR)a.b/<lf>
 | |
|     a\nb
 | |
|     ** Failers
 | |
|     a\rb  
 | |
| 
 | |
| /(*LF)a.b/<CRLF>
 | |
|     a\rb
 | |
|     ** Failers
 | |
|     a\nb  
 | |
| 
 | |
| /(*CRLF)a.b/
 | |
|     a\rb
 | |
|     a\nb  
 | |
|     ** Failers
 | |
|     a\r\nb  
 | |
| 
 | |
| /(*ANYCRLF)a.b/<CR>
 | |
|     ** Failers
 | |
|     a\rb
 | |
|     a\nb  
 | |
|     a\r\nb  
 | |
| 
 | |
| /(*ANY)a.b/<cr>
 | |
|     ** Failers
 | |
|     a\rb
 | |
|     a\nb  
 | |
|     a\r\nb  
 | |
|     a\x85b 
 | |
|     
 | |
| /(*ANY).*/g
 | |
|     abc\r\ndef
 | |
| 
 | |
| /(*ANYCRLF).*/g
 | |
|     abc\r\ndef
 | |
| 
 | |
| /(*CRLF).*/g
 | |
|     abc\r\ndef
 | |
| 
 | |
| /a\Rb/I<bsr_anycrlf>
 | |
|     a\rb
 | |
|     a\nb
 | |
|     a\r\nb
 | |
|     ** Failers
 | |
|     a\x85b
 | |
|     a\x0bb     
 | |
| 
 | |
| /a\Rb/I<bsr_unicode>
 | |
|     a\rb
 | |
|     a\nb
 | |
|     a\r\nb
 | |
|     a\x85b
 | |
|     a\x0bb     
 | |
|     ** Failers 
 | |
|     a\x85b\<bsr_anycrlf>
 | |
|     a\x0bb\<bsr_anycrlf>
 | |
|     
 | |
| /a\R?b/I<bsr_anycrlf>
 | |
|     a\rb
 | |
|     a\nb
 | |
|     a\r\nb
 | |
|     ** Failers
 | |
|     a\x85b
 | |
|     a\x0bb     
 | |
| 
 | |
| /a\R?b/I<bsr_unicode>
 | |
|     a\rb
 | |
|     a\nb
 | |
|     a\r\nb
 | |
|     a\x85b
 | |
|     a\x0bb     
 | |
|     ** Failers 
 | |
|     a\x85b\<bsr_anycrlf>
 | |
|     a\x0bb\<bsr_anycrlf>
 | |
|     
 | |
| /a\R{2,4}b/I<bsr_anycrlf>
 | |
|     a\r\n\nb
 | |
|     a\n\r\rb
 | |
|     a\r\n\r\n\r\n\r\nb
 | |
|     ** Failers
 | |
|     a\x85\85b
 | |
|     a\x0b\0bb     
 | |
| 
 | |
| /a\R{2,4}b/I<bsr_unicode>
 | |
|     a\r\rb
 | |
|     a\n\n\nb
 | |
|     a\r\n\n\r\rb
 | |
|     a\x85\85b
 | |
|     a\x0b\0bb     
 | |
|     ** Failers 
 | |
|     a\r\r\r\r\rb 
 | |
|     a\x85\85b\<bsr_anycrlf>
 | |
|     a\x0b\0bb\<bsr_anycrlf>
 | |
|  
 | |
| /(*BSR_ANYCRLF)a\Rb/I
 | |
|     a\nb
 | |
|     a\rb 
 | |
| 
 | |
| /(*BSR_UNICODE)a\Rb/I
 | |
|     a\x85b
 | |
| 
 | |
| /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
 | |
|     a\nb
 | |
|     a\rb 
 | |
| 
 | |
| /(*CRLF)(*BSR_UNICODE)a\Rb/I
 | |
|     a\x85b
 | |
| 
 | |
| /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
 | |
| 
 | |
| /(?<a>)(?&)/
 | |
| 
 | |
| /(?<abc>)(?&a)/
 | |
| 
 | |
| /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
 | |
| 
 | |
| /(?+-a)/
 | |
| 
 | |
| /(?-+a)/
 | |
| 
 | |
| /(?(-1))/
 | |
| 
 | |
| /(?(+10))/
 | |
| 
 | |
| /(?(10))/
 | |
| 
 | |
| /(?(+2))()()/
 | |
| 
 | |
| /(?(2))()()/
 | |
| 
 | |
| /\k''/
 | |
| 
 | |
| /\k<>/
 | |
| 
 | |
| /\k{}/
 | |
| 
 | |
| /\k/
 | |
| 
 | |
| /\kabc/
 | |
| 
 | |
| /(?P=)/
 | |
| 
 | |
| /(?P>)/
 | |
| 
 | |
| /(?!\w)(?R)/
 | |
| 
 | |
| /(?=\w)(?R)/
 | |
| 
 | |
| /(?<!\w)(?R)/
 | |
| 
 | |
| /(?<=\w)(?R)/
 | |
| 
 | |
| /[[:foo:]]/
 | |
| 
 | |
| /[[:1234:]]/
 | |
| 
 | |
| /[[:f\oo:]]/
 | |
| 
 | |
| /[[: :]]/
 | |
| 
 | |
| /[[:...:]]/
 | |
| 
 | |
| /[[:l\ower:]]/
 | |
| 
 | |
| /[[:abc\:]]/
 | |
| 
 | |
| /[abc[:x\]pqr:]]/
 | |
| 
 | |
| /[[:a\dz:]]/
 | |
| 
 | |
| /(^(a|b\g<-1'c))/
 | |
| 
 | |
| /^(?+1)(?<a>x|y){0}z/
 | |
|     xzxx
 | |
|     yzyy 
 | |
|     ** Failers
 | |
|     xxz  
 | |
| 
 | |
| /(\3)(\1)(a)/
 | |
|     cat
 | |
| 
 | |
| /(\3)(\1)(a)/<JS>
 | |
|     cat
 | |
|     
 | |
| /TA]/
 | |
|     The ACTA] comes 
 | |
| 
 | |
| /TA]/<JS>
 | |
|     The ACTA] comes 
 | |
| 
 | |
| /(?2)[]a()b](abc)/
 | |
|     abcbabc
 | |
| 
 | |
| /(?2)[^]a()b](abc)/
 | |
|     abcbabc
 | |
| 
 | |
| /(?1)[]a()b](abc)/
 | |
|     abcbabc
 | |
|     ** Failers 
 | |
|     abcXabc
 | |
| 
 | |
| /(?1)[^]a()b](abc)/
 | |
|     abcXabc
 | |
|     ** Failers 
 | |
|     abcbabc
 | |
| 
 | |
| /(?2)[]a()b](abc)(xyz)/
 | |
|     xyzbabcxyz
 | |
| 
 | |
| /(?&N)[]a(?<N>)](?<M>abc)/
 | |
|    abc<abc
 | |
| 
 | |
| /(?&N)[]a(?<N>)](abc)/
 | |
|    abc<abc
 | |
| 
 | |
| /a[]b/
 | |
| 
 | |
| /a[^]b/
 | |
| 
 | |
| /a[]b/<JS>
 | |
|     ** Failers
 | |
|     ab
 | |
| 
 | |
| /a[]+b/<JS>
 | |
|     ** Failers
 | |
|     ab 
 | |
| 
 | |
| /a[]*+b/<JS>
 | |
|     ** Failers
 | |
|     ab 
 | |
| 
 | |
| /a[^]b/<JS>
 | |
|     aXb
 | |
|     a\nb 
 | |
|     ** Failers
 | |
|     ab  
 | |
|     
 | |
| /a[^]+b/<JS> 
 | |
|     aXb
 | |
|     a\nX\nXb 
 | |
|     ** Failers
 | |
|     ab  
 | |
| 
 | |
| /a(?!)b/BZ
 | |
| 
 | |
| /(?!)?a/BZ
 | |
|     ab
 | |
| 
 | |
| /a(*FAIL)+b/
 | |
| 
 | |
| /(abc|pqr|123){0}[xyz]/SI
 | |
| 
 | |
| /(?(?=.*b)b|^)/CI
 | |
|    adc
 | |
|    abc 
 | |
|    
 | |
| /(?(?=b).*b|^d)/I
 | |
| 
 | |
| /(?(?=.*b).*b|^d)/I
 | |
| 
 | |
| /xyz/C
 | |
|   xyz 
 | |
|   abcxyz 
 | |
|   abcxyz\Y
 | |
|   ** Failers 
 | |
|   abc
 | |
|   abc\Y
 | |
|   abcxypqr  
 | |
|   abcxypqr\Y  
 | |
|   
 | |
| /(*NO_START_OPT)xyz/C
 | |
|   abcxyz
 | |
|   
 | |
| /(*NO_AUTO_POSSESS)a+b/BZ  
 | |
| 
 | |
| /xyz/CY
 | |
|   abcxyz 
 | |
| 
 | |
| /^"((?(?=[a])[^"])|b)*"$/C
 | |
|     "ab"
 | |
| 
 | |
| /^"((?(?=[a])[^"])|b)*"$/
 | |
|     "ab"
 | |
| 
 | |
| /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
 | |
|     XYabcdY
 | |
| 
 | |
| /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
 | |
|     XYabcdY
 | |
|  
 | |
| /Xa{2,4}b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /Xa{2,4}?b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /Xa{2,4}+b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X\d{2,4}b/
 | |
|     X\P
 | |
|     X3\P
 | |
|     X33\P 
 | |
|     X333\P
 | |
|     X3333\P 
 | |
|     
 | |
| /X\d{2,4}?b/
 | |
|     X\P
 | |
|     X3\P
 | |
|     X33\P 
 | |
|     X333\P
 | |
|     X3333\P 
 | |
|     
 | |
| /X\d{2,4}+b/
 | |
|     X\P
 | |
|     X3\P
 | |
|     X33\P 
 | |
|     X333\P
 | |
|     X3333\P 
 | |
|     
 | |
| /X\D{2,4}b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X\D{2,4}?b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X\D{2,4}+b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X[abc]{2,4}b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X[abc]{2,4}?b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X[abc]{2,4}+b/
 | |
|     X\P
 | |
|     Xa\P
 | |
|     Xaa\P 
 | |
|     Xaaa\P
 | |
|     Xaaaa\P 
 | |
|     
 | |
| /X[^a]{2,4}b/
 | |
|     X\P
 | |
|     Xz\P
 | |
|     Xzz\P 
 | |
|     Xzzz\P
 | |
|     Xzzzz\P 
 | |
|     
 | |
| /X[^a]{2,4}?b/
 | |
|     X\P
 | |
|     Xz\P
 | |
|     Xzz\P 
 | |
|     Xzzz\P
 | |
|     Xzzzz\P 
 | |
|     
 | |
| /X[^a]{2,4}+b/
 | |
|     X\P
 | |
|     Xz\P
 | |
|     Xzz\P 
 | |
|     Xzzz\P
 | |
|     Xzzzz\P 
 | |
|     
 | |
| /(Y)X\1{2,4}b/
 | |
|     YX\P
 | |
|     YXY\P
 | |
|     YXYY\P 
 | |
|     YXYYY\P
 | |
|     YXYYYY\P 
 | |
|     
 | |
| /(Y)X\1{2,4}?b/
 | |
|     YX\P
 | |
|     YXY\P
 | |
|     YXYY\P 
 | |
|     YXYYY\P
 | |
|     YXYYYY\P 
 | |
|     
 | |
| /(Y)X\1{2,4}+b/
 | |
|     YX\P
 | |
|     YXY\P
 | |
|     YXYY\P 
 | |
|     YXYYY\P
 | |
|     YXYYYY\P 
 | |
|     
 | |
| /\++\KZ|\d+X|9+Y/
 | |
|     ++++123999\P
 | |
|     ++++123999Y\P
 | |
|     ++++Z1234\P 
 | |
| 
 | |
| /Z(*F)/
 | |
|     Z\P
 | |
|     ZA\P 
 | |
|     
 | |
| /Z(?!)/
 | |
|     Z\P 
 | |
|     ZA\P 
 | |
| 
 | |
| /dog(sbody)?/
 | |
|     dogs\P
 | |
|     dogs\P\P 
 | |
|     
 | |
| /dog(sbody)??/
 | |
|     dogs\P
 | |
|     dogs\P\P 
 | |
| 
 | |
| /dog|dogsbody/
 | |
|     dogs\P
 | |
|     dogs\P\P 
 | |
|  
 | |
| /dogsbody|dog/
 | |
|     dogs\P
 | |
|     dogs\P\P 
 | |
| 
 | |
| /\bthe cat\b/
 | |
|     the cat\P
 | |
|     the cat\P\P
 | |
| 
 | |
| /abc/
 | |
|    abc\P
 | |
|    abc\P\P
 | |
|    
 | |
| /abc\K123/
 | |
|     xyzabc123pqr
 | |
|     xyzabc12\P
 | |
|     xyzabc12\P\P
 | |
|     
 | |
| /(?<=abc)123/
 | |
|     xyzabc123pqr 
 | |
|     xyzabc12\P
 | |
|     xyzabc12\P\P
 | |
| 
 | |
| /\babc\b/
 | |
|     +++abc+++
 | |
|     +++ab\P
 | |
|     +++ab\P\P  
 | |
| 
 | |
| /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 | |
| 
 | |
| /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
 | |
| 
 | |
| /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
 | |
| 
 | |
| /abc\K/+
 | |
|     abcdef
 | |
|     abcdef\N\N
 | |
|     xyzabcdef\N\N
 | |
|     ** Failers
 | |
|     abcdef\N 
 | |
|     xyzabcdef\N
 | |
|     
 | |
| /^(?:(?=abc)|abc\K)/+
 | |
|     abcdef
 | |
|     abcdef\N\N 
 | |
|     ** Failers 
 | |
|     abcdef\N 
 | |
| 
 | |
| /a?b?/+
 | |
|     xyz
 | |
|     xyzabc
 | |
|     xyzabc\N
 | |
|     xyzabc\N\N
 | |
|     xyz\N\N    
 | |
|     ** Failers 
 | |
|     xyz\N 
 | |
| 
 | |
| /^a?b?/+
 | |
|     xyz
 | |
|     xyzabc
 | |
|     ** Failers 
 | |
|     xyzabc\N
 | |
|     xyzabc\N\N
 | |
|     xyz\N\N    
 | |
|     xyz\N 
 | |
|     
 | |
| /^(?<name>a|b\g<name>c)/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /^(?<name>a|b\g'name'c)/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /^(a|b\g<1>c)/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /^(a|b\g'1'c)/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /^(a|b\g'-1'c)/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /(^(a|b\g<-1>c))/
 | |
|     aaaa
 | |
|     bacxxx
 | |
|     bbaccxxx 
 | |
|     bbbacccxx
 | |
| 
 | |
| /(?-i:\g<name>)(?i:(?<name>a))/
 | |
|     XaaX
 | |
|     XAAX 
 | |
| 
 | |
| /(?i:\g<name>)(?-i:(?<name>a))/
 | |
|     XaaX
 | |
|     ** Failers 
 | |
|     XAAX 
 | |
| 
 | |
| /(?-i:\g<+1>)(?i:(a))/
 | |
|     XaaX
 | |
|     XAAX 
 | |
| 
 | |
| /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
 | |
| 
 | |
| /(?<n>a|b|c)\g<n>*/
 | |
|    abc
 | |
|    accccbbb 
 | |
| 
 | |
| /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
 | |
|     XYabcdY
 | |
| 
 | |
| /(?<=b(?1)|zzz)(a)/
 | |
|     xbaax
 | |
|     xzzzax 
 | |
| 
 | |
| /(a)(?<=b\1)/
 | |
| 
 | |
| /(a)(?<=b+(?1))/
 | |
| 
 | |
| /(a+)(?<=b(?1))/
 | |
| 
 | |
| /(a(?<=b(?1)))/
 | |
| 
 | |
| /(?<=b(?1))xyz/
 | |
| 
 | |
| /(?<=b(?1))xyz(b+)pqrstuvew/
 | |
| 
 | |
| /(a|bc)\1/SI
 | |
| 
 | |
| /(a|bc)\1{2,3}/SI
 | |
| 
 | |
| /(a|bc)(?1)/SI
 | |
| 
 | |
| /(a|b\1)(a|b\1)/SI
 | |
| 
 | |
| /(a|b\1){2}/SI
 | |
| 
 | |
| /(a|bbbb\1)(a|bbbb\1)/SI
 | |
| 
 | |
| /(a|bbbb\1){2}/SI
 | |
| 
 | |
| /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
 | |
| 
 | |
| /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
 | |
| 
 | |
| "(?>.*/)foo"SI
 | |
| 
 | |
| /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
 | |
| 
 | |
| /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
 | |
| 
 | |
| /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
 | |
| 
 | |
| /<a[\s]+href[\s]*=[\s]*          # find <a href=
 | |
|  ([\"\'])?                       # find single or double quote
 | |
|  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
 | |
|                                  # quote, otherwise match up to next space
 | |
| /isxSI
 | |
| 
 | |
| /^(?!:)                       # colon disallowed at start
 | |
|   (?:                         # start of item
 | |
|     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
 | |
|     (?(1)0 | () ) )           # if null previously matched, fail; else null
 | |
|     :                         # followed by colon
 | |
|   ){1,7}                      # end item; 1-7 of them required               
 | |
|   [0-9a-f]{1,4} $             # final hex number at end of string
 | |
|   (?(1)|.)                    # check that there was an empty component
 | |
|   /xiIS
 | |
| 
 | |
| /(?|(?<a>A)|(?<a>B))/I
 | |
|     AB\Ca
 | |
|     BA\Ca
 | |
| 
 | |
| /(?|(?<a>A)|(?<b>B))/ 
 | |
| 
 | |
| /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
 | |
|     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
 | |
|     (?('quote')[a-z]+|[0-9]+)/JIx
 | |
|     a"aaaaa
 | |
|     b"aaaaa 
 | |
|     ** Failers 
 | |
|     b"11111
 | |
|     a"11111 
 | |
|     
 | |
| /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
 | |
|     abcdX
 | |
|     eX
 | |
|     ** Failers
 | |
|     abcdY
 | |
|     ey     
 | |
|     
 | |
| /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
 | |
|     abcdd
 | |
|     ** Failers
 | |
|     abcdde  
 | |
| 
 | |
| /abcd*/
 | |
|     xxxxabcd\P
 | |
|     xxxxabcd\P\P
 | |
| 
 | |
| /abcd*/i
 | |
|     xxxxabcd\P
 | |
|     xxxxabcd\P\P
 | |
|     XXXXABCD\P
 | |
|     XXXXABCD\P\P
 | |
| 
 | |
| /abc\d*/
 | |
|     xxxxabc1\P
 | |
|     xxxxabc1\P\P
 | |
| 
 | |
| /(a)bc\1*/
 | |
|     xxxxabca\P
 | |
|     xxxxabca\P\P
 | |
| 
 | |
| /abc[de]*/
 | |
|     xxxxabcde\P
 | |
|     xxxxabcde\P\P
 | |
| 
 | |
| /-- 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
 | |
|     hitting (*COMMIT). --/
 | |
| 
 | |
| /(?1)(A(*COMMIT)|B)D/
 | |
|     ABD
 | |
|     XABD
 | |
|     BAD
 | |
|     ABXABD  
 | |
|     ** Failers 
 | |
|     ABX 
 | |
|     BAXBAD  
 | |
| 
 | |
| /(\3)(\1)(a)/<JS>
 | |
|     cat
 | |
| 
 | |
| /(\3)(\1)(a)/SI<JS>
 | |
|     cat
 | |
| 
 | |
| /(\3)(\1)(a)/SI
 | |
|     cat
 | |
| 
 | |
| /i(?(DEFINE)(?<s>a))/SI
 | |
|     i
 | |
|     
 | |
| /()i(?(1)a)/SI 
 | |
|     ia
 | |
| 
 | |
| /(?i)a(?-i)b|c/BZ
 | |
|     XabX
 | |
|     XAbX
 | |
|     CcC 
 | |
|     ** Failers
 | |
|     XABX   
 | |
| 
 | |
| /(?i)a(?s)b|c/BZ
 | |
| 
 | |
| /(?i)a(?s-i)b|c/BZ
 | |
| 
 | |
| /^(ab(c\1)d|x){2}$/BZ
 | |
|     xabcxd
 | |
|     
 | |
| /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
 | |
| 
 | |
| /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
 | |
| 
 | |
| / -- This one is here because Perl gives the match as "b" rather than "ab". I
 | |
|      believe this to be a Perl bug. --/  
 | |
|       
 | |
| /(?>a\Kb)z|(ab)/
 | |
|     ab 
 | |
| 
 | |
| /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
 | |
| 
 | |
| /abc(*MARK:)pqr/
 | |
| 
 | |
| /abc(*:)pqr/
 | |
| 
 | |
| /abc(*FAIL:123)xyz/
 | |
| 
 | |
| /--- This should, and does, fail. In Perl, it does not, which I think is a 
 | |
|      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
 | |
| 
 | |
| /A(*COMMIT)B/+K
 | |
|     ACABX
 | |
| 
 | |
| /--- These should be different, but in Perl they are not, which I think
 | |
|      is a bug in Perl. ---/
 | |
| 
 | |
| /A(*THEN)B|A(*THEN)C/K
 | |
|     AC
 | |
| 
 | |
| /A(*PRUNE)B|A(*PRUNE)C/K
 | |
|     AC
 | |
|     
 | |
| /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
 | |
| though PCRE does. ---/
 | |
| 
 | |
| /^A(*:A)B|^X(*:A)Y/K
 | |
|     ** Failers
 | |
|     XAQQ
 | |
|     
 | |
| /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
 | |
| optimizations defeat this. So does the PCRE optimization unless we disable it 
 | |
| with \Y. ---/
 | |
| 
 | |
| /(*COMMIT)ABC/
 | |
|     ABCDEFG
 | |
|     ** Failers
 | |
|     DEFGABC\Y  
 | |
|     
 | |
| /^(ab (c+(*THEN)cd) | xyz)/x
 | |
|     abcccd  
 | |
| 
 | |
| /^(ab (c+(*PRUNE)cd) | xyz)/x
 | |
|     abcccd  
 | |
| 
 | |
| /^(ab (c+(*FAIL)cd) | xyz)/x
 | |
|     abcccd  
 | |
|     
 | |
| /--- Perl gets some of these wrong ---/ 
 | |
| 
 | |
| /(?>.(*ACCEPT))*?5/
 | |
|     abcde
 | |
| 
 | |
| /(.(*ACCEPT))*?5/
 | |
|     abcde
 | |
| 
 | |
| /(.(*ACCEPT))5/
 | |
|     abcde
 | |
| 
 | |
| /(.(*ACCEPT))*5/
 | |
|     abcde
 | |
| 
 | |
| /A\NB./BZ
 | |
|     ACBD
 | |
|     *** Failers
 | |
|     A\nB
 | |
|     ACB\n   
 | |
| 
 | |
| /A\NB./sBZ
 | |
|     ACBD
 | |
|     ACB\n 
 | |
|     *** Failers
 | |
|     A\nB  
 | |
|   
 | |
| /A\NB/<crlf>
 | |
|     A\nB
 | |
|     A\rB
 | |
|     ** Failers
 | |
|     A\r\nB    
 | |
| 
 | |
| /\R+b/BZ
 | |
| 
 | |
| /\R+\n/BZ
 | |
| 
 | |
| /\R+\d/BZ
 | |
| 
 | |
| /\d*\R/BZ
 | |
| 
 | |
| /\s*\R/BZ
 | |
|     \x20\x0a
 | |
|     \x20\x0d
 | |
|     \x20\x0d\x0a
 | |
| 
 | |
| /\S*\R/BZ
 | |
|     a\x0a
 | |
| 
 | |
| /X\h*\R/BZ
 | |
|     X\x20\x0a
 | |
| 
 | |
| /X\H*\R/BZ
 | |
|     X\x0d\x0a
 | |
| 
 | |
| /X\H+\R/BZ
 | |
|     X\x0d\x0a
 | |
| 
 | |
| /X\H++\R/BZ
 | |
|     X\x0d\x0a
 | |
| 
 | |
| /(?<=abc)def/
 | |
|     abc\P\P
 | |
| 
 | |
| /abc$/
 | |
|     abc
 | |
|     abc\P
 | |
|     abc\P\P
 | |
| 
 | |
| /abc$/m
 | |
|     abc
 | |
|     abc\n
 | |
|     abc\P\P
 | |
|     abc\n\P\P 
 | |
|     abc\P
 | |
|     abc\n\P
 | |
| 
 | |
| /abc\z/
 | |
|     abc
 | |
|     abc\P
 | |
|     abc\P\P
 | |
| 
 | |
| /abc\Z/
 | |
|     abc
 | |
|     abc\P
 | |
|     abc\P\P
 | |
| 
 | |
| /abc\b/
 | |
|     abc
 | |
|     abc\P
 | |
|     abc\P\P
 | |
| 
 | |
| /abc\B/
 | |
|     abc
 | |
|     abc\P
 | |
|     abc\P\P
 | |
| 
 | |
| /.+/
 | |
|     abc\>0
 | |
|     abc\>1
 | |
|     abc\>2
 | |
|     abc\>3
 | |
|     abc\>4
 | |
|     abc\>-4 
 | |
| 
 | |
| /^\cģ/
 | |
| 
 | |
| /(?P<abn>(?P=abn)xxx)/BZ
 | |
| 
 | |
| /(a\1z)/BZ
 | |
| 
 | |
| /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
 | |
| 
 | |
| /(?P<abn>(?P=axn)xxx)/BZ
 | |
| 
 | |
| /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
 | |
| 
 | |
| /-- These tests are here because Perl gets the first one wrong. --/
 | |
| 
 | |
| /(\R*)(.)/s
 | |
|     \r\n
 | |
|     \r\r\n\n\r 
 | |
|     \r\r\n\n\r\n 
 | |
| 
 | |
| /(\R)*(.)/s
 | |
|     \r\n
 | |
|     \r\r\n\n\r 
 | |
|     \r\r\n\n\r\n 
 | |
| 
 | |
| /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
 | |
|     \r\n
 | |
|     \r\r\n\n\r 
 | |
|     \r\r\n\n\r\n 
 | |
| 
 | |
| /-- --/
 | |
| 
 | |
| /^abc$/BZ
 | |
| 
 | |
| /^abc$/BZm
 | |
| 
 | |
| /^(a)*+(\w)/S
 | |
|     aaaaX
 | |
|     ** Failers 
 | |
|     aaaa
 | |
| 
 | |
| /^(?:a)*+(\w)/S
 | |
|     aaaaX
 | |
|     ** Failers 
 | |
|     aaaa
 | |
| 
 | |
| /(a)++1234/SDZ
 | |
| 
 | |
| /([abc])++1234/SI
 | |
| 
 | |
| /(?<=(abc)+)X/
 | |
| 
 | |
| /(^ab)/I
 | |
| 
 | |
| /(^ab)++/I
 | |
| 
 | |
| /(^ab|^)+/I
 | |
| 
 | |
| /(^ab|^)++/I
 | |
| 
 | |
| /(?:^ab)/I
 | |
| 
 | |
| /(?:^ab)++/I
 | |
| 
 | |
| /(?:^ab|^)+/I
 | |
| 
 | |
| /(?:^ab|^)++/I
 | |
| 
 | |
| /(.*ab)/I
 | |
| 
 | |
| /(.*ab)++/I
 | |
| 
 | |
| /(.*ab|.*)+/I
 | |
| 
 | |
| /(.*ab|.*)++/I
 | |
| 
 | |
| /(?:.*ab)/I
 | |
| 
 | |
| /(?:.*ab)++/I
 | |
| 
 | |
| /(?:.*ab|.*)+/I
 | |
| 
 | |
| /(?:.*ab|.*)++/I
 | |
| 
 | |
| /(?=a)[bcd]/I
 | |
| 
 | |
| /((?=a))[bcd]/I
 | |
| 
 | |
| /((?=a))+[bcd]/I
 | |
| 
 | |
| /((?=a))++[bcd]/I
 | |
| 
 | |
| /(?=a+)[bcd]/iI
 | |
| 
 | |
| /(?=a+?)[bcd]/iI
 | |
| 
 | |
| /(?=a++)[bcd]/iI
 | |
| 
 | |
| /(?=a{3})[bcd]/iI
 | |
| 
 | |
| /(abc)\1+/S
 | |
| 
 | |
| /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
 | |
| 
 | |
| /(?1)(?:(b(*ACCEPT))){0}/
 | |
|     b
 | |
| 
 | |
| /(?1)(?:(b(*ACCEPT))){0}c/
 | |
|     bc
 | |
|     ** Failers 
 | |
|     b 
 | |
| 
 | |
| /(?1)(?:((*ACCEPT))){0}c/
 | |
|     c
 | |
|     c\N 
 | |
| 
 | |
| /^.*?(?(?=a)a|b(*THEN)c)/
 | |
|     ba
 | |
| 
 | |
| /^.*?(?(?=a)a|bc)/
 | |
|     ba
 | |
| 
 | |
| /^.*?(?(?=a)a(*THEN)b|c)/
 | |
|     ac
 | |
| 
 | |
| /^.*?(?(?=a)a(*THEN)b)c/
 | |
|     ac
 | |
| 
 | |
| /^.*?(a(*THEN)b)c/
 | |
|     aabc
 | |
|     
 | |
| /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
 | |
|     aabc
 | |
| 
 | |
| /^.*?(a(*THEN)b|z)c/
 | |
|     aabc
 | |
| 
 | |
| /^.*?(z|a(*THEN)b)c/
 | |
|     aabc
 | |
| 
 | |
| /-- --/
 | |
| 
 | |
| /-- These studied versions are here because they are not Perl-compatible; the
 | |
|     studying means the mark is not seen. --/
 | |
| 
 | |
| /(*MARK:A)(*SKIP:B)(C|X)/KS
 | |
|     C
 | |
|     D
 | |
|      
 | |
| /(*:A)A+(*SKIP:A)(B|Z)/KS
 | |
|     AAAC
 | |
| 
 | |
| /-- --/
 | |
| 
 | |
| "(?=a*(*ACCEPT)b)c"
 | |
|     c
 | |
|     c\N 
 | |
|     
 | |
| /(?1)c(?(DEFINE)((*ACCEPT)b))/
 | |
|     c
 | |
|     c\N  
 | |
|     
 | |
| /(?>(*ACCEPT)b)c/
 | |
|     c
 | |
|     c\N  
 | |
| 
 | |
| /(?:(?>(a)))+a%/++
 | |
|     %aa%
 | |
| 
 | |
| /(a)b|ac/++SS
 | |
|     ac\O3
 | |
|     
 | |
| /(a)(b)x|abc/++
 | |
|      abc\O6
 | |
| 
 | |
| /(a)bc|(a)(b)\2/
 | |
|     \O3abc
 | |
|     \O4abc 
 | |
| 
 | |
| /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
 | |
| 
 | |
| /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
 | |
| 
 | |
| /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
 | |
| 
 | |
| /(abc)(?1)/SI
 | |
| 
 | |
| /^(?>a)++/
 | |
|     aa\M
 | |
|     aaaaaaaaa\M 
 | |
|     
 | |
| /(a)(?1)++/
 | |
|     aa\M
 | |
|     aaaaaaaaa\M  
 | |
| 
 | |
| /(?:(foo)|(bar)|(baz))X/SS=
 | |
|     bazfooX
 | |
|     foobazbarX
 | |
|     barfooX
 | |
|     bazX
 | |
|     foobarbazX    
 | |
|     bazfooX\O0
 | |
|     bazfooX\O2
 | |
|     bazfooX\O4
 | |
|     bazfooX\O6
 | |
|     bazfooX\O8
 | |
|     bazfooX\O10
 | |
| 
 | |
| /(?=abc){3}abc/BZ
 | |
| 
 | |
| /(?=abc)+abc/BZ
 | |
| 
 | |
| /(?=abc)++abc/BZ
 | |
| 
 | |
| /(?=abc){0}xyz/BZ
 | |
| 
 | |
| /(?=(a))?./BZ
 | |
| 
 | |
| /(?=(a))??./BZ
 | |
| 
 | |
| /^(?=(a)){0}b(?1)/BZ
 | |
| 
 | |
| /(?(DEFINE)(a))?b(?1)/BZ
 | |
| 
 | |
| /^(?=(?1))?[az]([abc])d/BZ
 | |
| 
 | |
| /^(?!a){0}\w+/BZ
 | |
| 
 | |
| /(?<=(abc))?xyz/BZ
 | |
| 
 | |
| /[:a[:abc]b:]/BZ
 | |
| 
 | |
| /((?2))((?1))/SS
 | |
|     abc
 | |
| 
 | |
| /((?(R2)a+|(?1)b))/SS
 | |
|     aaaabcde
 | |
| 
 | |
| /(?(R)a*(?1)|((?R))b)/SS
 | |
|     aaaabcde
 | |
| 
 | |
| /(a+|(?R)b)/
 | |
| 
 | |
| /^(a(*:A)(d|e(*:B))z|aeq)/C
 | |
|     adz
 | |
|     aez
 | |
|     aeqwerty
 | |
| 
 | |
| /.(*F)/
 | |
|     \P\Pabc
 | |
| 
 | |
| /\btype\b\W*?\btext\b\W*?\bjavascript\b/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)|/+S!I
 | |
|     a
 | |
| 
 | |
| /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
 | |
|     ax
 | |
| 
 | |
| 'a*(*ACCEPT)b'+
 | |
|     \N\N
 | |
|     abc\N\N
 | |
|     bbb\N\N 
 | |
| 
 | |
| /(*ACCEPT)a/+I
 | |
|     bax
 | |
| 
 | |
| /z(*ACCEPT)a/+I
 | |
|     baxzbx
 | |
| 
 | |
| /a(?:.)*?a/ims                                                                  
 | |
|     \Mabbbbbbbbbbbbbbbbbbbbba
 | |
|     
 | |
| /a(?:.(*THEN))*?a/ims
 | |
|     \Mabbbbbbbbbbbbbbbbbbbbba
 | |
| 
 | |
| /a(?:.(*THEN:ABC))*?a/ims
 | |
|     \Mabbbbbbbbbbbbbbbbbbbbba
 | |
| 
 | |
| /^(?>a+)(?>(z+))\w/BZ
 | |
|     aaaazzzzb
 | |
|     ** Failers
 | |
|     aazz  
 | |
| 
 | |
| /(.)(\1|a(?2))/
 | |
|     bab
 | |
|     
 | |
| /\1|(.)(?R)\1/
 | |
|     cbbbc
 | |
|     
 | |
| /(.)((?(1)c|a)|a(?2))/
 | |
|     baa  
 | |
| 
 | |
| /(?P<abn>(?P=abn)xxx)/BZ
 | |
| 
 | |
| /(a\1z)/BZ
 | |
| 
 | |
| /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
 | |
|      \Maabbccddee
 | |
| 
 | |
| /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
 | |
|      \Maabbccddee
 | |
| 
 | |
| /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
 | |
|      \Maabbccddee
 | |
| 
 | |
| /^a\x41z/<JS>
 | |
|     aAz
 | |
|     *** Failers
 | |
|     ax41z
 | |
| 
 | |
| /^a[m\x41]z/<JS>
 | |
|     aAz
 | |
| 
 | |
| /^a\x1z/<JS>
 | |
|     ax1z
 | |
| 
 | |
| /^a\u0041z/<JS>
 | |
|     aAz
 | |
|     *** Failers
 | |
|     au0041z
 | |
| 
 | |
| /^a[m\u0041]z/<JS>
 | |
|     aAz
 | |
| 
 | |
| /^a\u041z/<JS>
 | |
|     au041z
 | |
|     *** Failers
 | |
|     aAz
 | |
| 
 | |
| /^a\U0041z/<JS>
 | |
|     aU0041z
 | |
|     *** Failers
 | |
|     aAz
 | |
| 
 | |
| /(?(?=c)c|d)++Y/BZ
 | |
| 
 | |
| /(?(?=c)c|d)*+Y/BZ
 | |
| 
 | |
| /a[\NB]c/
 | |
|     aNc
 | |
|     
 | |
| /a[B-\Nc]/ 
 | |
| 
 | |
| /a[B\Nc]/ 
 | |
| 
 | |
| /(a)(?2){0,1999}?(b)/
 | |
| 
 | |
| /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
 | |
| 
 | |
| /--- This test, with something more complicated than individual letters, causes
 | |
| different behaviour in Perl. Perhaps it disables some optimization; no tag is
 | |
| passed back for the failures, whereas in PCRE there is a tag. ---/
 | |
|     
 | |
| /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
 | |
|     AABC
 | |
|     XXYZ 
 | |
|     ** Failers
 | |
|     XAQQ  
 | |
|     XAQQXZZ  
 | |
|     AXQQQ 
 | |
|     AXXQQQ 
 | |
| 
 | |
| /-- Perl doesn't give marks for these, though it does if the alternatives are
 | |
| replaced by single letters. --/
 | |
|     
 | |
| /(b|q)(*:m)f|a(*:n)w/K
 | |
|     aw 
 | |
|     ** Failers 
 | |
|     abc
 | |
| 
 | |
| /(q|b)(*:m)f|a(*:n)w/K
 | |
|     aw 
 | |
|     ** Failers 
 | |
|     abc
 | |
| 
 | |
| /-- After a partial match, the behaviour is as for a failure. --/
 | |
| 
 | |
| /^a(*:X)bcde/K
 | |
|    abc\P
 | |
|    
 | |
| /-- These are here because Perl doesn't return a mark, except for the first --/
 | |
| 
 | |
| /(?=(*:x))(q|)/K+
 | |
|     abc
 | |
| 
 | |
| /(?=(*:x))((*:y)q|)/K+
 | |
|     abc
 | |
| 
 | |
| /(?=(*:x))(?:(*:y)q|)/K+
 | |
|     abc
 | |
| 
 | |
| /(?=(*:x))(?>(*:y)q|)/K+
 | |
|     abc
 | |
| 
 | |
| /(?=a(*:x))(?!a(*:y)c)/K+
 | |
|     ab
 | |
| 
 | |
| /(?=a(*:x))(?=a(*:y)c|)/K+
 | |
|     ab
 | |
| 
 | |
| /(..)\1/
 | |
|     ab\P
 | |
|     aba\P
 | |
|     abab\P
 | |
| 
 | |
| /(..)\1/i
 | |
|     ab\P
 | |
|     abA\P
 | |
|     aBAb\P
 | |
| 
 | |
| /(..)\1{2,}/
 | |
|     ab\P
 | |
|     aba\P
 | |
|     abab\P
 | |
|     ababa\P
 | |
|     ababab\P
 | |
|     ababab\P\P
 | |
|     abababa\P
 | |
|     abababa\P\P
 | |
| 
 | |
| /(..)\1{2,}/i
 | |
|     ab\P
 | |
|     aBa\P
 | |
|     aBAb\P
 | |
|     AbaBA\P
 | |
|     abABAb\P
 | |
|     aBAbaB\P\P
 | |
|     abABabA\P
 | |
|     abaBABa\P\P
 | |
| 
 | |
| /(..)\1{2,}?x/i
 | |
|     ab\P
 | |
|     abA\P
 | |
|     aBAb\P
 | |
|     abaBA\P
 | |
|     abAbaB\P
 | |
|     abaBabA\P
 | |
|     abAbABaBx\P
 | |
| 
 | |
| /^(..)\1/
 | |
|     aba\P
 | |
| 
 | |
| /^(..)\1{2,3}x/
 | |
|     aba\P
 | |
|     ababa\P
 | |
|     ababa\P\P
 | |
|     abababx
 | |
|     ababababx  
 | |
| 
 | |
| /^(..)\1{2,3}?x/
 | |
|     aba\P
 | |
|     ababa\P
 | |
|     ababa\P\P
 | |
|     abababx
 | |
|     ababababx  
 | |
|     
 | |
| /^(..)(\1{2,3})ab/
 | |
|     abababab
 | |
| 
 | |
| /^\R/
 | |
|     \r\P
 | |
|     \r\P\P
 | |
|     
 | |
| /^\R{2,3}x/
 | |
|     \r\P
 | |
|     \r\P\P
 | |
|     \r\r\P 
 | |
|     \r\r\P\P
 | |
|     \r\r\r\P  
 | |
|     \r\r\r\P\P
 | |
|     \r\rx
 | |
|     \r\r\rx    
 | |
| 
 | |
| /^\R{2,3}?x/
 | |
|     \r\P
 | |
|     \r\P\P
 | |
|     \r\r\P 
 | |
|     \r\r\P\P
 | |
|     \r\r\r\P  
 | |
|     \r\r\r\P\P
 | |
|     \r\rx
 | |
|     \r\r\rx    
 | |
|     
 | |
| /^\R?x/
 | |
|     \r\P
 | |
|     \r\P\P 
 | |
|     x
 | |
|     \rx  
 | |
| 
 | |
| /^\R+x/
 | |
|     \r\P
 | |
|     \r\P\P 
 | |
|     \r\n\P
 | |
|     \r\n\P\P  
 | |
|     \rx  
 | |
| 
 | |
| /^a$/<CRLF>
 | |
|     a\r\P
 | |
|     a\r\P\P 
 | |
| 
 | |
| /^a$/m<CRLF>
 | |
|     a\r\P
 | |
|     a\r\P\P 
 | |
| 
 | |
| /^(a$|a\r)/<CRLF>
 | |
|     a\r\P
 | |
|     a\r\P\P 
 | |
| 
 | |
| /^(a$|a\r)/m<CRLF>
 | |
|     a\r\P
 | |
|     a\r\P\P 
 | |
| 
 | |
| /./<CRLF>
 | |
|     \r\P
 | |
|     \r\P\P 
 | |
|   
 | |
| /.{2,3}/<CRLF>
 | |
|     \r\P 
 | |
|     \r\P\P
 | |
|     \r\r\P
 | |
|     \r\r\P\P
 | |
|     \r\r\r\P
 | |
|     \r\r\r\P\P     
 | |
| 
 | |
| /.{2,3}?/<CRLF>
 | |
|     \r\P 
 | |
|     \r\P\P
 | |
|     \r\r\P
 | |
|     \r\r\P\P
 | |
|     \r\r\r\P
 | |
|     \r\r\r\P\P     
 | |
| 
 | |
| "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
 | |
|     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)(?<=ba)/I
 | |
| 
 | |
| /(?:.*?a)(?<=ba)/I
 | |
| 
 | |
| /.*?a(*PRUNE)b/I
 | |
| 
 | |
| /.*?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+ 
 | |
|     
 | |
| /(?:(?>(a))(?C1)bb|aa(?C2)b)/
 | |
|     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 
 | |
|     
 | |
| /(?<=123)(*MARK:xx)abc/K
 | |
|     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
 | |
| 
 | |
| /-- This test causes a segfault with Perl 5.18.0 --/
 | |
| 
 | |
| /^(?=(a)){0}b(?1)/
 | |
|     backgammon
 | |
| 
 | |
| /(?|(?<n>f)|(?<n>b))/JI
 | |
| 
 | |
| /(?<a>abc)(?<a>z)\k<a>()/JDZS
 | |
| 
 | |
| /a*[bcd]/BZ
 | |
| 
 | |
| /[bcd]*a/BZ
 | |
| 
 | |
| /-- A complete set of tests for auto-possessification of character types --/
 | |
| 
 | |
| /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
 | |
| 
 | |
| /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
 | |
| 
 | |
| /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
 | |
| 
 | |
| /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
 | |
| 
 | |
| /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
 | |
| 
 | |
| /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
 | |
| 
 | |
| /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
 | |
| 
 | |
| /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
 | |
| 
 | |
| /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
 | |
| 
 | |
| /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
 | |
| 
 | |
| /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
 | |
| 
 | |
| /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
 | |
| 
 | |
| / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
 | |
| 
 | |
| /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
 | |
| 
 | |
| / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
 | |
| 
 | |
| / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
 | |
| 
 | |
| /\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
 | |
| 
 | |
| /(?=a+)a(a+)++a/BZ
 | |
| 
 | |
| /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
 | |
| 
 | |
| /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
 | |
| 
 | |
| /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
 | |
| 
 | |
| /[ab]*/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]*?/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]?/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]??/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]+/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]+?/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]{2,3}/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]{2,3}?/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]{2,}/BZ
 | |
|     aaaa
 | |
| 
 | |
| /[ab]{2,}?/BZ
 | |
|     aaaa
 | |
| 
 | |
| /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
 | |
| 
 | |
| /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
 | |
| 
 | |
| /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
 | |
| 
 | |
| /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
 | |
| 
 | |
| /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
 | |
| 
 | |
| /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
 | |
| 
 | |
| /[a-c]*d/DZS
 | |
| 
 | |
| /[a-c]+d/DZS
 | |
| 
 | |
| /[a-c]?d/DZS
 | |
| 
 | |
| /[a-c]{4,6}d/DZS
 | |
| 
 | |
| /[a-c]{0,6}d/DZS
 | |
| 
 | |
| /-- End of special auto-possessive tests --/
 | |
| 
 | |
| /^A\o{1239}B/
 | |
|     A\123B
 | |
| 
 | |
| /^A\oB/
 | |
|     
 | |
| /^A\x{zz}B/ 
 | |
| 
 | |
| /^A\x{12Z/
 | |
| 
 | |
| /^A\x{/
 | |
| 
 | |
| /[ab]++/BZO
 | |
| 
 | |
| /[^ab]*+/BZO
 | |
| 
 | |
| /a{4}+/BZO
 | |
| 
 | |
| /a{4}+/BZOi
 | |
| 
 | |
| /[a-[:digit:]]+/
 | |
| 
 | |
| /[A-[:digit:]]+/
 | |
| 
 | |
| /[a-[.xxx.]]+/
 | |
| 
 | |
| /[a-[=xxx=]]+/
 | |
| 
 | |
| /[a-[!xxx!]]+/
 | |
| 
 | |
| /[A-[!xxx!]]+/
 | |
|     A]]]
 | |
| 
 | |
| /[a-\d]+/
 | |
| 
 | |
| /(?<0abc>xx)/
 | |
| 
 | |
| /(?&1abc)xx(?<1abc>y)/
 | |
| 
 | |
| /(?<ab-cd>xx)/
 | |
| 
 | |
| /(?'0abc'xx)/
 | |
| 
 | |
| /(?P<0abc>xx)/
 | |
| 
 | |
| /\k<5ghj>/
 | |
| 
 | |
| /\k'5ghj'/
 | |
| 
 | |
| /\k{2fgh}/
 | |
| 
 | |
| /(?P=8yuki)/
 | |
| 
 | |
| /\g{4df}/
 | |
| 
 | |
| /(?&1abc)xx(?<1abc>y)/
 | |
| 
 | |
| /(?P>1abc)xx(?<1abc>y)/
 | |
| 
 | |
| /\g'3gh'/
 | |
| 
 | |
| /\g<5fg>/
 | |
| 
 | |
| /(?(<4gh>)abc)/
 | |
| 
 | |
| /(?('4gh')abc)/
 | |
| 
 | |
| /(?(4gh)abc)/
 | |
| 
 | |
| /(?(R&6yh)abc)/
 | |
| 
 | |
| /-- Test the ugly "start or end of word" compatibility syntax --/
 | |
| 
 | |
| /[[:<:]]red[[:>:]]/BZ
 | |
|     little red riding hood
 | |
|     a /red/ thing 
 | |
|     red is a colour
 | |
|     put it all on red  
 | |
|     ** Failers
 | |
|     no reduction
 | |
|     Alfred Winifred
 | |
|     
 | |
| /[a[:<:]] should give error/ 
 | |
| 
 | |
| /(?=ab\K)/+
 | |
|     abcd
 | |
| 
 | |
| /abcd/f<lf>
 | |
|     xx\nxabcd
 | |
|     
 | |
| / -- Test stack check external calls --/ 
 | |
| 
 | |
| /(((((a)))))/Q0
 | |
| 
 | |
| /(((((a)))))/Q1
 | |
| 
 | |
| /(((((a)))))/Q
 | |
| 
 | |
| /-- End of testinput2 --/
 |