summaryrefslogtreecommitdiff
path: root/srclib/pcre/testdata/testoutput2
diff options
context:
space:
mode:
Diffstat (limited to 'srclib/pcre/testdata/testoutput2')
-rw-r--r--srclib/pcre/testdata/testoutput23429
1 files changed, 3328 insertions, 101 deletions
diff --git a/srclib/pcre/testdata/testoutput2 b/srclib/pcre/testdata/testoutput2
index e8844d2aeb..f2e7d5483d 100644
--- a/srclib/pcre/testdata/testoutput2
+++ b/srclib/pcre/testdata/testoutput2
@@ -1,4 +1,4 @@
-PCRE version 3.9 02-Jan-2002
+PCRE version 5.0 13-Sep-2004
/(a)b|/
Capturing subpattern count = 1
@@ -28,7 +28,7 @@ No match
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 'c'
+No need char
abc
0: abc
\Aabc
@@ -42,24 +42,28 @@ No match
/a+bc/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'c'
/a*bc/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
Need char = 'c'
/a{3}bc/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'c'
/(abc|a+z)/
Capturing subpattern count = 1
+Partial matching not supported
No options
First char = 'a'
No need char
@@ -68,7 +72,7 @@ No need char
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 'c'
+No need char
abc
0: abc
*** Failers
@@ -91,8 +95,8 @@ Failed: number too big in {} quantifier at offset 7
/[abcd/
Failed: missing terminating ] for character class at offset 5
-/[\B]/
-Failed: invalid escape sequence in character class at offset 2
+/(?X)[\B]/
+Failed: invalid escape sequence in character class at offset 6
/[z-a]/
Failed: range out of order in character class at offset 3
@@ -111,12 +115,14 @@ Failed: unrecognized character after (? at offset 2
/.*b/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char at start or follows \n
Need char = 'b'
/.*?b/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char at start or follows \n
Need char = 'b'
@@ -136,7 +142,7 @@ Capturing subpattern count = 0
No options
No first char
No need char
-Starting character set: c d e
+Starting byte set: c d e
this sentence eventually mentions a cat
0: cat
this sentences rambles on and on for a while and then reaches elephant
@@ -147,7 +153,7 @@ Capturing subpattern count = 0
Options: caseless
No first char
No need char
-Starting character set: C D E c d e
+Starting byte set: C D E c d e
this sentence eventually mentions a CAT cat
0: CAT
this sentences rambles on and on for a while to elephant ElePhant
@@ -158,14 +164,14 @@ Capturing subpattern count = 0
No options
No first char
No need char
-Starting character set: a b c d
+Starting byte set: a b c d
/(a|[^\dZ])/S
Capturing subpattern count = 1
No options
No first char
No need char
-Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
+Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
\x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
\x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
@@ -185,10 +191,10 @@ Capturing subpattern count = 1
No options
No first char
No need char
-Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b
+Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
/(ab\2)/
-Failed: back reference to non-existent subpattern at offset 6
+Failed: reference to non-existent subpattern at offset 6
/{4,5}abc/
Failed: nothing to repeat at offset 4
@@ -281,7 +287,7 @@ No match
No match
/(a)(b)(c)(d)(e)\6/
-Failed: back reference to non-existent subpattern at offset 17
+Failed: reference to non-existent subpattern at offset 17
/the quick brown fox/
Capturing subpattern count = 0
@@ -297,7 +303,7 @@ Need char = 'x'
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 'x'
+No need char
the quick brown fox
0: the quick brown fox
*** Failers
@@ -320,6 +326,7 @@ No need char
/.*((abc)$|(def))/
Capturing subpattern count = 3
+Partial matching not supported
No options
First char at start or follows \n
No need char
@@ -396,6 +403,7 @@ Failed: missing terminating ] for character class at offset 4
/[^aeiou ]{3,}/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
No need char
@@ -404,6 +412,7 @@ No need char
/<.*>/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = '<'
Need char = '>'
@@ -412,6 +421,7 @@ Need char = '>'
/<.*?>/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = '<'
Need char = '>'
@@ -420,14 +430,16 @@ Need char = '>'
/<.*>/U
Capturing subpattern count = 0
+Partial matching not supported
Options: ungreedy
First char = '<'
Need char = '>'
abc<def>ghi<klm>nop
0: <def>
-/<.*>(?U)/
+/(?U)<.*>/
Capturing subpattern count = 0
+Partial matching not supported
Options: ungreedy
First char = '<'
Need char = '>'
@@ -436,6 +448,7 @@ Need char = '>'
/<.*?>/U
Capturing subpattern count = 0
+Partial matching not supported
Options: ungreedy
First char = '<'
Need char = '>'
@@ -444,6 +457,7 @@ Need char = '>'
/={3,}/U
Capturing subpattern count = 0
+Partial matching not supported
Options: ungreedy
First char = '='
Need char = '='
@@ -452,6 +466,7 @@ Need char = '='
/(?U)={3,}?/
Capturing subpattern count = 0
+Partial matching not supported
Options: ungreedy
First char = '='
Need char = '='
@@ -486,8 +501,8 @@ Failed: lookbehind assertion is not fixed length at offset 12
/(?i)abc/
Capturing subpattern count = 0
Options: caseless
-First char = 'a'
-Need char = 'c'
+First char = 'a' (caseless)
+Need char = 'c' (caseless)
/(a|(?m)a)/
Capturing subpattern count = 1
@@ -499,7 +514,7 @@ No need char
Capturing subpattern count = 0
Options: anchored caseless
No first char
-Need char = '4'
+No need char
/(^b|(?i)^d)/
Capturing subpattern count = 1
@@ -510,6 +525,7 @@ No need char
/(?s).*/
Capturing subpattern count = 0
+Partial matching not supported
Options: anchored dotall
No first char
No need char
@@ -519,21 +535,21 @@ Capturing subpattern count = 0
No options
No first char
No need char
-Starting character set: a b c d
+Starting byte set: a b c d
/(?i)[abcd]/S
Capturing subpattern count = 0
Options: caseless
No first char
No need char
-Starting character set: A B C D a b c d
+Starting byte set: A B C D a b c d
/(?m)[xy]|(b|c)/S
Capturing subpattern count = 1
Options: multiline
No first char
No need char
-Starting character set: b c x y
+Starting byte set: b c x y
/(^a|^b)/m
Capturing subpattern count = 1
@@ -563,11 +579,12 @@ Failed: assertion expected after (?( at offset 3
Failed: assertion expected after (?( at offset 3
/(?(?<ab))/
-Failed: unrecognized character after (?< at offset 2
+Failed: unrecognized character after (?< at offset 5
/((?s)blah)\s+\1/
Capturing subpattern count = 1
Max back reference = 1
+Partial matching not supported
No options
First char = 'b'
Need char = 'h'
@@ -575,36 +592,38 @@ Need char = 'h'
/((?i)blah)\s+\1/
Capturing subpattern count = 1
Max back reference = 1
+Partial matching not supported
No options
Case state changes
-No first char
-Need char = 'h'
+First char = 'b' (caseless)
+Need char = 'h' (caseless)
/((?i)b)/DS
------------------------------------------------------------------
- 0 16 Bra 0
- 3 8 Bra 1
+ 0 15 Bra 0
+ 3 7 Bra 1
6 01 Opt
- 8 1 b
- 11 8 Ket
- 14 00 Opt
- 16 16 Ket
- 19 End
+ 8 NC b
+ 10 7 Ket
+ 13 00 Opt
+ 15 15 Ket
+ 18 End
------------------------------------------------------------------
Capturing subpattern count = 1
No options
Case state changes
-No first char
-Need char = 'b'
-Starting character set: B b
+First char = 'b' (caseless)
+No need char
+Study returned NULL
/(a*b|(?i:c*(?-i)d))/S
Capturing subpattern count = 1
+Partial matching not supported
No options
Case state changes
No first char
No need char
-Starting character set: C a b c d
+Starting byte set: C a b c d
/a$/
Capturing subpattern count = 0
@@ -642,7 +661,7 @@ No match
Capturing subpattern count = 0
Options: anchored multiline
No first char
-Need char = 'c'
+No need char
/^abc/m
Capturing subpattern count = 0
@@ -652,9 +671,10 @@ Need char = 'c'
/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
Capturing subpattern count = 5
+Partial matching not supported
Options: anchored
No first char
-Need char = 'a'
+No need char
aaaaabbbbbcccccdef
0: aaaaabbbbbcccccdef
1: aaaaabbbbbcccccdef
@@ -668,27 +688,53 @@ Capturing subpattern count = 0
No options
No first char
No need char
-Starting character set: a b
+Starting byte set: a b
/(?<!foo)(alpha|omega)/S
Capturing subpattern count = 1
No options
No first char
Need char = 'a'
-Starting character set: a o
+Starting byte set: a o
/(?!alphabet)[ab]/S
Capturing subpattern count = 0
No options
No first char
No need char
-Starting character set: a b
+Starting byte set: a b
/(?<=foo\n)^bar/m
Capturing subpattern count = 0
Options: multiline
+No first char
+Need char = 'r'
+ foo\nbarbar
+ 0: bar
+ ***Failers
+No match
+ rhubarb
+No match
+ barbell
+No match
+ abc\nbarton
+No match
+
+/^(?<=foo\n)bar/m
+Capturing subpattern count = 0
+Options: multiline
First char at start or follows \n
Need char = 'r'
+ foo\nbarbar
+ 0: bar
+ ***Failers
+No match
+ rhubarb
+No match
+ barbell
+No match
+ abc\nbarton
+No match
/(?>^abc)/m
Capturing subpattern count = 0
@@ -744,6 +790,7 @@ No need char
/(?>.*)(?<=(abcd)|(xyz))/
Capturing subpattern count = 2
+Partial matching not supported
No options
First char at start or follows \n
No need char
@@ -825,7 +872,7 @@ Capturing subpattern count = 1
Max back reference = 1
Options: anchored
No first char
-Need char = 'a'
+No need char
aaaaaa
0: aaaaaa
1: aa
@@ -864,13 +911,13 @@ Failed: nothing to repeat at offset 2
Failed: unmatched parentheses at offset 0
/\1/
-Failed: back reference to non-existent subpattern at offset 2
+Failed: reference to non-existent subpattern at offset 2
/\2/
-Failed: back reference to non-existent subpattern at offset 2
+Failed: reference to non-existent subpattern at offset 2
/(a)|\2/
-Failed: back reference to non-existent subpattern at offset 6
+Failed: reference to non-existent subpattern at offset 6
/a[b-a]/i
Failed: range out of order in character class at offset 4
@@ -903,7 +950,7 @@ Failed: unmatched parentheses at offset 0
Failed: missing ) at offset 4
/(?<%)b/
-Failed: unrecognized character after (?< at offset 0
+Failed: unrecognized character after (?< at offset 3
/a(?{)b/
Failed: unrecognized character after (? at offset 3
@@ -966,6 +1013,7 @@ copy substring 5 failed -7
/(.{20})/
Capturing subpattern count = 1
+Partial matching not supported
No options
No first char
No need char
@@ -983,6 +1031,7 @@ copy substring 1 failed -6
/(.{15})/
Capturing subpattern count = 1
+Partial matching not supported
No options
No first char
No need char
@@ -997,6 +1046,7 @@ No need char
/(.{16})/
Capturing subpattern count = 1
+Partial matching not supported
No options
No first char
No need char
@@ -1015,7 +1065,7 @@ copy substring 1 failed -6
Capturing subpattern count = 3
Options: anchored
No first char
-Need char = 'f'
+No need char
adef\G1\G2\G3\G4\L
0: adef
1: a
@@ -1053,7 +1103,7 @@ get substring 4 failed -7
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 'f'
+No need char
abc\00def\L\C0
0: abc\x00def
0C abc (7)
@@ -1062,109 +1112,116 @@ Need char = 'f'
/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/M
-Memory allocation (code space): 428
+Memory allocation (code space): 432
Capturing subpattern count = 8
+Partial matching not supported
No options
First char = 'w'
Need char = 'd'
/.*X/D
------------------------------------------------------------------
- 0 8 Bra 0
+ 0 7 Bra 0
3 Any*
- 5 1 X
- 8 8 Ket
- 11 End
+ 5 X
+ 7 7 Ket
+ 10 End
------------------------------------------------------------------
Capturing subpattern count = 0
+Partial matching not supported
No options
First char at start or follows \n
Need char = 'X'
/.*X/Ds
------------------------------------------------------------------
- 0 8 Bra 0
+ 0 7 Bra 0
3 Any*
- 5 1 X
- 8 8 Ket
- 11 End
+ 5 X
+ 7 7 Ket
+ 10 End
------------------------------------------------------------------
Capturing subpattern count = 0
+Partial matching not supported
Options: anchored dotall
No first char
Need char = 'X'
/(.*X|^B)/D
------------------------------------------------------------------
- 0 21 Bra 0
- 3 8 Bra 1
+ 0 19 Bra 0
+ 3 7 Bra 1
6 Any*
- 8 1 X
- 11 7 Alt
- 14 ^
- 15 1 B
- 18 15 Ket
- 21 21 Ket
- 24 End
+ 8 X
+ 10 6 Alt
+ 13 ^
+ 14 B
+ 16 13 Ket
+ 19 19 Ket
+ 22 End
------------------------------------------------------------------
Capturing subpattern count = 1
+Partial matching not supported
No options
First char at start or follows \n
No need char
/(.*X|^B)/Ds
------------------------------------------------------------------
- 0 21 Bra 0
- 3 8 Bra 1
+ 0 19 Bra 0
+ 3 7 Bra 1
6 Any*
- 8 1 X
- 11 7 Alt
- 14 ^
- 15 1 B
- 18 15 Ket
- 21 21 Ket
- 24 End
+ 8 X
+ 10 6 Alt
+ 13 ^
+ 14 B
+ 16 13 Ket
+ 19 19 Ket
+ 22 End
------------------------------------------------------------------
Capturing subpattern count = 1
+Partial matching not supported
Options: anchored dotall
No first char
No need char
/(?s)(.*X|^B)/D
------------------------------------------------------------------
- 0 21 Bra 0
- 3 8 Bra 1
+ 0 19 Bra 0
+ 3 7 Bra 1
6 Any*
- 8 1 X
- 11 7 Alt
- 14 ^
- 15 1 B
- 18 15 Ket
- 21 21 Ket
- 24 End
+ 8 X
+ 10 6 Alt
+ 13 ^
+ 14 B
+ 16 13 Ket
+ 19 19 Ket
+ 22 End
------------------------------------------------------------------
Capturing subpattern count = 1
+Partial matching not supported
Options: anchored dotall
No first char
No need char
/(?s:.*X|^B)/D
------------------------------------------------------------------
- 0 27 Bra 0
- 3 10 Bra 0
+ 0 25 Bra 0
+ 3 9 Bra 0
6 04 Opt
8 Any*
- 10 1 X
- 13 9 Alt
- 16 04 Opt
- 18 ^
- 19 1 B
- 22 19 Ket
- 25 00 Opt
- 27 27 Ket
- 30 End
+ 10 X
+ 12 8 Alt
+ 15 04 Opt
+ 17 ^
+ 18 B
+ 20 17 Ket
+ 23 00 Opt
+ 25 25 Ket
+ 28 End
------------------------------------------------------------------
Capturing subpattern count = 0
+Partial matching not supported
No options
First char at start or follows \n
No need char
@@ -1242,13 +1299,14 @@ Need char = 's'
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 's'
+No need char
ississippi
0: iss
0+ issippi
/.*iss/g+
Capturing subpattern count = 0
+Partial matching not supported
No options
First char at start or follows \n
Need char = 's'
@@ -1292,7 +1350,7 @@ Need char = 'i'
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 's'
+No need char
Mississippi
0: Mis
0+ sissippi
@@ -1301,7 +1359,7 @@ Need char = 's'
Capturing subpattern count = 0
Options: anchored
No first char
-Need char = 10
+No need char
ab\nab\ncd
0: ab\x0a
0+ ab\x0acd
@@ -1349,36 +1407,42 @@ Need char = 'c'
/a*/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
No need char
/a+/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
/(baa|a+)/
Capturing subpattern count = 1
+Partial matching not supported
No options
No first char
Need char = 'a'
/a{0,3}/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
No need char
/baa{3,}/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'b'
Need char = 'a'
/"([^\\"]+|\\.)*"/
Capturing subpattern count = 1
+Partial matching not supported
No options
First char = '"'
Need char = '"'
@@ -1433,60 +1497,70 @@ Need char = 'b'
/abc*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'b'
/ab.c*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'b'
/a.c*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
/.c*/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
No need char
/ac*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
/(a.c*|b.c*)/
Capturing subpattern count = 1
+Partial matching not supported
No options
No first char
No need char
/a.c*|aba/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
/.+a/
Capturing subpattern count = 0
+Partial matching not supported
No options
No first char
Need char = 'a'
/(?=abcda)a.*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
-No need char
+Need char = 'a'
/(?=a)a.*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
@@ -1499,12 +1573,14 @@ No need char
/a\d*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
No need char
/ab\d*/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'b'
@@ -1523,6 +1599,7 @@ Need char = 'd'
/ab\d+/
Capturing subpattern count = 0
+Partial matching not supported
No options
First char = 'a'
Need char = 'b'
@@ -1640,6 +1717,7 @@ Study returned NULL
\) # Closing )
/x
Capturing subpattern count = 0
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1668,6 +1746,7 @@ No match
/\( ( (?>[^()]+) | (?R) )* \) /xg
Capturing subpattern count = 1
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1682,6 +1761,7 @@ Need char = ')'
/\( (?: (?>[^()]+) | (?R) ) \) /x
Capturing subpattern count = 0
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1700,6 +1780,7 @@ No match
/\( (?: (?>[^()]+) | (?R) )? \) /x
Capturing subpattern count = 0
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1710,6 +1791,7 @@ Need char = ')'
/\( ( (?>[^()]+) | (?R) )* \) /x
Capturing subpattern count = 1
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1719,6 +1801,7 @@ Need char = ')'
/\( ( ( (?>[^()]+) | (?R) )* ) \) /x
Capturing subpattern count = 2
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1729,6 +1812,7 @@ Need char = ')'
/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x
Capturing subpattern count = 3
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1745,6 +1829,7 @@ Need char = ')'
/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x
Capturing subpattern count = 3
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1761,6 +1846,7 @@ Need char = ')'
/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
Capturing subpattern count = 11
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1780,6 +1866,7 @@ Need char = ')'
/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x
Capturing subpattern count = 3
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1787,10 +1874,11 @@ Need char = ')'
0: (abcd(xyz<p>qrs)123)
1: abcd(xyz<p>qrs)123
2: 123
- 3: <p>qrs
+ 3: <unset>
/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
Capturing subpattern count = 3
+Partial matching not supported
Options: extended
First char = '('
Need char = ')'
@@ -1818,6 +1906,19 @@ Options: anchored
No first char
No need char
+/^[[:^alnum:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x00-/:-@[-`{-\xff]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
/^[[:alpha:]]/D
------------------------------------------------------------------
0 37 Bra 0
@@ -1830,6 +1931,19 @@ Capturing subpattern count = 0
Options: anchored
No first char
No need char
+
+/^[[:^alpha:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x00-@[-`{-\xff]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
/^[[:ascii:]]/D
------------------------------------------------------------------
@@ -1844,6 +1958,32 @@ Options: anchored
No first char
No need char
+/^[[:^ascii:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x80-\xff]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/^[[:blank:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x09 ]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
/^[[:cntrl:]]/D
------------------------------------------------------------------
0 37 Bra 0
@@ -1991,7 +2131,20 @@ No need char
------------------------------------------------------------------
0 37 Bra 0
3 ^
- 4 [\x00-/1-2:-\xff]
+ 4 [\x00-/12:-\xff]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/^[[:^blank:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x00-\x08\x0a-\x1f!-\xff]
37 37 Ket
40 End
------------------------------------------------------------------
@@ -2003,7 +2156,7 @@ No need char
/[01[:alpha:]%]/D
------------------------------------------------------------------
0 36 Bra 0
- 3 [%0-1A-Za-z]
+ 3 [%01A-Za-z]
36 36 Ket
39 End
------------------------------------------------------------------
@@ -2076,6 +2229,7 @@ Need char = 'd'
/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/
Capturing subpattern count = 271
Max back reference = 270
+Partial matching not supported
No options
No first char
No need char
@@ -2372,9 +2526,3082 @@ Need char = 'n'
1: main
2: O
+/These are all cases where Perl does it differently (nested captures)/
+Capturing subpattern count = 1
+No options
+First char = 'T'
+Need char = 's'
+
+/^(a(b)?)+$/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ aba
+ 0: aba
+ 1: a
+ 2: b
+
+/^(aa(bb)?)+$/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: aa
+ 2: bb
+
+/^(aa|aa(bb))+$/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: aa
+ 2: bb
+
+/^(aa(bb)??)+$/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: aa
+ 2: bb
+
+/^(?:aa(bb)?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: bb
+
+/^(aa(b(b))?)+$/
+Capturing subpattern count = 3
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: aa
+ 2: bb
+ 3: b
+
+/^(?:aa(b(b))?)+$/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: bb
+ 2: b
+
+/^(?:aa(b(?:b))?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: bb
+
+/^(?:aa(bb(?:b))?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbbaa
+ 0: aabbbaa
+ 1: bbb
+
+/^(?:aa(b(?:bb))?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbbaa
+ 0: aabbbaa
+ 1: bbb
+
+/^(?:aa(?:b(b))?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbaa
+ 0: aabbaa
+ 1: b
+
+/^(?:aa(?:b(bb))?)+$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ aabbbaa
+ 0: aabbbaa
+ 1: bb
+
+/^(aa(b(bb))?)+$/
+Capturing subpattern count = 3
+Options: anchored
+No first char
+No need char
+ aabbbaa
+ 0: aabbbaa
+ 1: aa
+ 2: bbb
+ 3: bb
+
+/^(aa(bb(bb))?)+$/
+Capturing subpattern count = 3
+Options: anchored
+No first char
+No need char
+ aabbbbaa
+ 0: aabbbbaa
+ 1: aa
+ 2: bbbb
+ 3: bb
+
+/--------------------------------------------------------------------/
+Capturing subpattern count = 0
+No options
+First char = '-'
+Need char = '-'
+
+/#/xMD
+Memory allocation (code space): 7
+------------------------------------------------------------------
+ 0 3 Bra 0
+ 3 3 Ket
+ 6 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: extended
+No first char
+No need char
+
+/a#/xMD
+Memory allocation (code space): 9
+------------------------------------------------------------------
+ 0 5 Bra 0
+ 3 a
+ 5 5 Ket
+ 8 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: extended
+First char = 'a'
+No need char
+
+/[\s]/D
+------------------------------------------------------------------
+ 0 36 Bra 0
+ 3 [\x09\x0a\x0c\x0d ]
+ 36 36 Ket
+ 39 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/[\S]/D
+------------------------------------------------------------------
+ 0 36 Bra 0
+ 3 [\x00-\x08\x0b\x0e-\x1f!-\xff]
+ 36 36 Ket
+ 39 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/a(?i)b/D
+------------------------------------------------------------------
+ 0 9 Bra 0
+ 3 a
+ 5 01 Opt
+ 7 NC b
+ 9 9 Ket
+ 12 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+Case state changes
+First char = 'a'
+Need char = 'b' (caseless)
+ ab
+ 0: ab
+ aB
+ 0: aB
+ *** Failers
+No match
+ AB
+No match
+
+/(a(?i)b)/D
+------------------------------------------------------------------
+ 0 17 Bra 0
+ 3 9 Bra 1
+ 6 a
+ 8 01 Opt
+ 10 NC b
+ 12 9 Ket
+ 15 00 Opt
+ 17 17 Ket
+ 20 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+Case state changes
+First char = 'a'
+Need char = 'b' (caseless)
+ ab
+ 0: ab
+ 1: ab
+ aB
+ 0: aB
+ 1: aB
+ *** Failers
+No match
+ AB
+No match
+
+/ (?i)abc/xD
+------------------------------------------------------------------
+ 0 9 Bra 0
+ 3 NC abc
+ 9 9 Ket
+ 12 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: caseless extended
+First char = 'a' (caseless)
+Need char = 'c' (caseless)
+
+/#this is a comment
+ (?i)abc/xD
+------------------------------------------------------------------
+ 0 9 Bra 0
+ 3 NC abc
+ 9 9 Ket
+ 12 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: caseless extended
+First char = 'a' (caseless)
+Need char = 'c' (caseless)
+
+/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
+------------------------------------------------------------------
+ 0 603 Bra 0
+ 3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
+603 603 Ket
+606 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = '1'
+Need char = '0'
+
+/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
+------------------------------------------------------------------
+ 0 603 Bra 0
+ 3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
+603 603 Ket
+606 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = '1'
+Need char = '0'
+
+/\Q\E/D
+------------------------------------------------------------------
+ 0 3 Bra 0
+ 3 3 Ket
+ 6 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+ \
+ 0:
+
+/\Q\Ex/D
+------------------------------------------------------------------
+ 0 5 Bra 0
+ 3 x
+ 5 5 Ket
+ 8 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = 'x'
+No need char
+
+/ \Q\E/D
+------------------------------------------------------------------
+ 0 5 Bra 0
+ 3
+ 5 5 Ket
+ 8 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = ' '
+No need char
+
+/a\Q\E/D
+------------------------------------------------------------------
+ 0 5 Bra 0
+ 3 a
+ 5 5 Ket
+ 8 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = 'a'
+No need char
+ abc
+ 0: a
+ bca
+ 0: a
+ bac
+ 0: a
+
+/a\Q\Eb/D
+------------------------------------------------------------------
+ 0 7 Bra 0
+ 3 ab
+ 7 7 Ket
+ 10 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'b'
+ abc
+ 0: ab
+
+/\Q\Eabc/D
+------------------------------------------------------------------
+ 0 9 Bra 0
+ 3 abc
+ 9 9 Ket
+ 12 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+
+/x*+\w/D
+------------------------------------------------------------------
+ 0 12 Bra 0
+ 3 5 Once
+ 6 x*
+ 8 5 Ket
+ 11 \w
+ 12 12 Ket
+ 15 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ *** Failers
+ 0: F
+ xxxxx
+No match
+
+/x?+/D
+------------------------------------------------------------------
+ 0 11 Bra 0
+ 3 5 Once
+ 6 x?
+ 8 5 Ket
+ 11 11 Ket
+ 14 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/x++/D
+------------------------------------------------------------------
+ 0 11 Bra 0
+ 3 5 Once
+ 6 x+
+ 8 5 Ket
+ 11 11 Ket
+ 14 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+First char = 'x'
+No need char
+
+/x{1,3}+/D
+------------------------------------------------------------------
+ 0 15 Bra 0
+ 3 9 Once
+ 6 x
+ 8 x{,2}
+ 12 9 Ket
+ 15 15 Ket
+ 18 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+First char = 'x'
+No need char
+
+/(x)*+/D
+------------------------------------------------------------------
+ 0 18 Bra 0
+ 3 12 Once
+ 6 Brazero
+ 7 5 Bra 1
+ 10 x
+ 12 5 KetRmax
+ 15 12 Ket
+ 18 18 Ket
+ 21 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+
+/^(\w++|\s++)*$/
+Capturing subpattern count = 1
+Partial matching not supported
+Options: anchored
+No first char
+No need char
+ now is the time for all good men to come to the aid of the party
+ 0: now is the time for all good men to come to the aid of the party
+ 1: party
+ *** Failers
+No match
+ this is not a line with only words and spaces!
+No match
+
+/(\d++)(\w)/
+Capturing subpattern count = 2
+Partial matching not supported
+No options
+No first char
+No need char
+ 12345a
+ 0: 12345a
+ 1: 12345
+ 2: a
+ *** Failers
+No match
+ 12345+
+No match
+
+/a++b/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+First char = 'a'
+Need char = 'b'
+ aaab
+ 0: aaab
+
+/(a++b)/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+First char = 'a'
+Need char = 'b'
+ aaab
+ 0: aaab
+ 1: aaab
+
+/(a++)b/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+First char = 'a'
+Need char = 'b'
+ aaab
+ 0: aaab
+ 1: aaa
+
+/([^()]++|\([^()]*\))+/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+No first char
+No need char
+ ((abc(ade)ufh()()x
+ 0: abc(ade)ufh()()x
+ 1: x
+
+/\(([^()]++|\([^()]+\))+\)/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+First char = '('
+Need char = ')'
+ (abc)
+ 0: (abc)
+ 1: abc
+ (abc(def)xyz)
+ 0: (abc(def)xyz)
+ 1: xyz
+ *** Failers
+No match
+ ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+No match
+
+/(abc){1,3}+/D
+------------------------------------------------------------------
+ 0 53 Bra 0
+ 3 47 Once
+ 6 9 Bra 1
+ 9 abc
+ 15 9 Ket
+ 18 Brazero
+ 19 28 Bra 0
+ 22 9 Bra 1
+ 25 abc
+ 31 9 Ket
+ 34 Brazero
+ 35 9 Bra 1
+ 38 abc
+ 44 9 Ket
+ 47 28 Ket
+ 50 47 Ket
+ 53 53 Ket
+ 56 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'c'
+
+/a+?+/
+Failed: nothing to repeat at offset 3
+
+/a{2,3}?+b/
+Failed: nothing to repeat at offset 7
+
+/(?U)a+?+/
+Failed: nothing to repeat at offset 7
+
+/a{2,3}?+b/U
+Failed: nothing to repeat at offset 7
+
+/x(?U)a++b/D
+------------------------------------------------------------------
+ 0 15 Bra 0
+ 3 x
+ 5 5 Once
+ 8 a+
+ 10 5 Ket
+ 13 b
+ 15 15 Ket
+ 18 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+First char = 'x'
+Need char = 'b'
+ xaaaab
+ 0: xaaaab
+
+/(?U)xa++b/D
+------------------------------------------------------------------
+ 0 15 Bra 0
+ 3 x
+ 5 5 Once
+ 8 a+
+ 10 5 Ket
+ 13 b
+ 15 15 Ket
+ 18 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+Options: ungreedy
+First char = 'x'
+Need char = 'b'
+ xaaaab
+ 0: xaaaab
+
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
+------------------------------------------------------------------
+ 0 106 Bra 0
+ 3 ^
+ 4 99 Bra 1
+ 7 5 Bra 2
+ 10 a+
+ 12 5 Ket
+ 15 37 Bra 3
+ 18 [ab]+?
+ 52 37 Ket
+ 55 37 Bra 4
+ 58 [bc]+
+ 92 37 Ket
+ 95 5 Bra 5
+ 98 \w*
+100 5 Ket
+103 99 Ket
+106 106 Ket
+109 End
+------------------------------------------------------------------
+Capturing subpattern count = 5
+Partial matching not supported
+Options: anchored
+No first char
+No need char
+
+/^x(?U)a+b/D
+------------------------------------------------------------------
+ 0 10 Bra 0
+ 3 ^
+ 4 x
+ 6 a+?
+ 8 b
+ 10 10 Ket
+ 13 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+Options: anchored
+No first char
+Need char = 'b'
+
+/^x(?U)(a+)b/D
+------------------------------------------------------------------
+ 0 16 Bra 0
+ 3 ^
+ 4 x
+ 6 5 Bra 1
+ 9 a+?
+ 11 5 Ket
+ 14 b
+ 16 16 Ket
+ 19 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Partial matching not supported
+Options: anchored
+No first char
+Need char = 'b'
+
+/[.x.]/
+Failed: POSIX collating elements are not supported at offset 0
+
+/[=x=]/
+Failed: POSIX collating elements are not supported at offset 0
+
+/[:x:]/
+Failed: POSIX named classes are supported only within a class at offset 0
+
+/\l/
+Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
+
+/\L/
+Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
+
+/\N{name}/
+Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
+
+/\u/
+Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
+
+/\U/
+Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
+
+/[/
+Failed: missing terminating ] for character class at offset 1
+
+/[a-/
+Failed: missing terminating ] for character class at offset 3
+
+/[[:space:]/
+Failed: missing terminating ] for character class at offset 10
+
+/[\s]/DM
+Memory allocation (code space): 40
+------------------------------------------------------------------
+ 0 36 Bra 0
+ 3 [\x09\x0a\x0c\x0d ]
+ 36 36 Ket
+ 39 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/[[:space:]]/DM
+Memory allocation (code space): 40
+------------------------------------------------------------------
+ 0 36 Bra 0
+ 3 [\x09-\x0d ]
+ 36 36 Ket
+ 39 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/[[:space:]abcde]/DM
+Memory allocation (code space): 40
+------------------------------------------------------------------
+ 0 36 Bra 0
+ 3 [\x09-\x0d a-e]
+ 36 36 Ket
+ 39 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
+Capturing subpattern count = 0
+Partial matching not supported
+Options: extended
+First char = '<'
+Need char = '>'
+ <>
+ 0: <>
+ <abcd>
+ 0: <abcd>
+ <abc <123> hij>
+ 0: <abc <123> hij>
+ <abc <def> hij>
+ 0: <def>
+ <abc<>def>
+ 0: <abc<>def>
+ <abc<>
+ 0: <>
+ *** Failers
+No match
+ <abc
+No match
+
+|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|DM
+Memory allocation (code space): 826
+------------------------------------------------------------------
+ 0 822 Bra 0
+ 3 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
+821 \b
+822 822 Ket
+825 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = '8'
+Need char = 'X'
+
+|\$\<\.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|DM
+Memory allocation (code space): 816
+------------------------------------------------------------------
+ 0 812 Bra 0
+ 3 $<.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
+811 \b
+812 812 Ket
+815 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = '$'
+Need char = 'X'
+
+/(.*)\d+\1/I
+Capturing subpattern count = 1
+Max back reference = 1
+Partial matching not supported
+No options
+No first char
+No need char
+
+/(.*)\d+/I
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+First char at start or follows \n
+No need char
+
+/(.*)\d+\1/Is
+Capturing subpattern count = 1
+Max back reference = 1
+Partial matching not supported
+Options: dotall
+No first char
+No need char
+
+/(.*)\d+/Is
+Capturing subpattern count = 1
+Partial matching not supported
+Options: anchored dotall
+No first char
+No need char
+
+/(.*(xyz))\d+\2/I
+Capturing subpattern count = 2
+Max back reference = 2
+Partial matching not supported
+No options
+First char at start or follows \n
+Need char = 'z'
+
+/((.*))\d+\1/I
+Capturing subpattern count = 2
+Max back reference = 1
+Partial matching not supported
+No options
+No first char
+No need char
+ abc123bc
+ 0: bc123bc
+ 1: bc
+ 2: bc
+
+/a[b]/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'b'
+
+/(?=a).*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+First char = 'a'
+No need char
+
+/(?=abc).xyz/iI
+Capturing subpattern count = 0
+Options: caseless
+First char = 'a' (caseless)
+Need char = 'z' (caseless)
+
+/(?=abc)(?i).xyz/I
+Capturing subpattern count = 0
+No options
+Case state changes
+First char = 'a'
+Need char = 'z' (caseless)
+
+/(?=a)(?=b)/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+No need char
+
+/(?=.)a/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+No need char
+
+/((?=abcda)a)/I
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'a'
+
+/((?=abcda)ab)/I
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'b'
+
+/()a/I
+Capturing subpattern count = 1
+No options
+No first char
+Need char = 'a'
+
+/(?(1)ab|ac)/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+No need char
+
+/(?(1)abz|acz)/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'z'
+
+/(?(1)abz)/I
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/(?(1)abz)123/I
+Capturing subpattern count = 0
+No options
+No first char
+Need char = '3'
+
+/(a)+/I
+Capturing subpattern count = 1
+No options
+First char = 'a'
+No need char
+
+/(a){2,3}/I
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'a'
+
+/(a)*/I
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+
+/[a]/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+No need char
+
+/[ab]/I
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/[ab]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: a b
+
+/[^a]/I
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/\d456/I
+Capturing subpattern count = 0
+No options
+No first char
+Need char = '6'
+
+/\d456/IS
+Capturing subpattern count = 0
+No options
+No first char
+Need char = '6'
+Starting byte set: 0 1 2 3 4 5 6 7 8 9
+
+/a^b/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'b'
+
+/^a/mI
+Capturing subpattern count = 0
+Options: multiline
+First char at start or follows \n
+Need char = 'a'
+ abcde
+ 0: a
+ xy\nabc
+ 0: a
+ *** Failers
+No match
+ xyabc
+No match
+
+/c|abc/I
+Capturing subpattern count = 0
+No options
+No first char
+Need char = 'c'
+
+/(?i)[ab]/IS
+Capturing subpattern count = 0
+Options: caseless
+No first char
+No need char
+Starting byte set: A B a b
+
+/[ab](?i)cd/IS
+Capturing subpattern count = 0
+No options
+Case state changes
+No first char
+Need char = 'd' (caseless)
+Starting byte set: a b
+
+/abc(?C)def/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'f'
+ abcdef
+--->abcdef
+ 0 ^ ^ d
+ 0: abcdef
+ 1234abcdef
+--->1234abcdef
+ 0 ^ ^ d
+ 0: abcdef
+ *** Failers
+No match
+ abcxyz
+No match
+ abcxyzf
+--->abcxyzf
+ 0 ^ ^ d
+No match
+
+/abc(?C)de(?C1)f/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'f'
+ 123abcdef
+--->123abcdef
+ 0 ^ ^ d
+ 1 ^ ^ f
+ 0: abcdef
+
+/(?C1)\dabc(?C2)def/
+Capturing subpattern count = 0
+No options
+No first char
+Need char = 'f'
+ 1234abcdef
+--->1234abcdef
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+ 2 ^ ^ d
+ 0: 4abcdef
+ *** Failers
+No match
+ abcdef
+--->abcdef
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+ 1 ^ \d
+No match
+
+/(?C255)ab/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'b'
+
+/(?C256)ab/
+Failed: number after (?C is > 255 at offset 6
+
+/(?Cab)xx/
+Failed: closing ) for (?C expected at offset 3
+
+/(?C12vr)x/
+Failed: closing ) for (?C expected at offset 5
+
+/abc(?C)def/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'f'
+ *** Failers
+No match
+ \x83\x0\x61bcdef
+--->\x83\x00abcdef
+ 0 ^ ^ d
+ 0: abcdef
+
+/(abc)(?C)de(?C1)f/
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'f'
+ 123abcdef
+--->123abcdef
+ 0 ^ ^ d
+ 1 ^ ^ f
+ 0: abcdef
+ 1: abc
+ 123abcdef\C+
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: abc
+--->123abcdef
+ ^ ^ d
+Callout 1: last capture = 1
+ 0: <unset>
+ 1: abc
+--->123abcdef
+ ^ ^ f
+ 0: abcdef
+ 1: abc
+ 123abcdef\C-
+ 0: abcdef
+ 1: abc
+ *** Failers
+No match
+ 123abcdef\C!1
+--->123abcdef
+ 0 ^ ^ d
+ 1 ^ ^ f
+No match
+
+/(?C0)(abc(?C1))*/
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+ abcabcabc
+--->abcabcabc
+ 0 ^ (abc(?C1))*
+ 1 ^ ^ )
+ 1 ^ ^ )
+ 1 ^ ^ )
+ 0: abcabcabc
+ 1: abc
+ abcabc\C!1!3
+--->abcabc
+ 0 ^ (abc(?C1))*
+ 1 ^ ^ )
+ 1 ^ ^ )
+ 0: abcabc
+ 1: abc
+ *** Failers
+--->*** Failers
+ 0 ^ (abc(?C1))*
+ 0:
+ abcabcabc\C!1!3
+--->abcabcabc
+ 0 ^ (abc(?C1))*
+ 1 ^ ^ )
+ 1 ^ ^ )
+ 1 ^ ^ )
+ 0: abcabc
+ 1: abc
+
+/(\d{3}(?C))*/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+No first char
+No need char
+ 123\C+
+Callout 0: last capture = -1
+ 0: <unset>
+--->123
+ ^ ^ )
+ 0: 123
+ 1: 123
+ 123456\C+
+Callout 0: last capture = -1
+ 0: <unset>
+--->123456
+ ^ ^ )
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: 123
+--->123456
+ ^ ^ )
+ 0: 123456
+ 1: 456
+ 123456789\C+
+Callout 0: last capture = -1
+ 0: <unset>
+--->123456789
+ ^ ^ )
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: 123
+--->123456789
+ ^ ^ )
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: 456
+--->123456789
+ ^ ^ )
+ 0: 123456789
+ 1: 789
+
+/((xyz)(?C)p|(?C1)xyzabc)/
+Capturing subpattern count = 2
+No options
+First char = 'x'
+No need char
+ xyzabc\C+
+Callout 0: last capture = 2
+ 0: <unset>
+ 1: <unset>
+ 2: xyz
+--->xyzabc
+ ^ ^ p
+Callout 1: last capture = -1
+ 0: <unset>
+--->xyzabc
+ ^ x
+ 0: xyzabc
+ 1: xyzabc
+
+/(X)((xyz)(?C)p|(?C1)xyzabc)/
+Capturing subpattern count = 3
+No options
+First char = 'X'
+Need char = 'x'
+ Xxyzabc\C+
+Callout 0: last capture = 3
+ 0: <unset>
+ 1: X
+ 2: <unset>
+ 3: xyz
+--->Xxyzabc
+ ^ ^ p
+Callout 1: last capture = 1
+ 0: <unset>
+ 1: X
+--->Xxyzabc
+ ^^ x
+ 0: Xxyzabc
+ 1: X
+ 2: xyzabc
+
+/(?=(abc))(?C)abcdef/
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'f'
+ abcdef\C+
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: abc
+--->abcdef
+ ^ a
+ 0: abcdef
+ 1: abc
+
+/(?!(abc)(?C1)d)(?C2)abcxyz/
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'z'
+ abcxyz\C+
+Callout 1: last capture = 1
+ 0: <unset>
+ 1: abc
+--->abcxyz
+ ^ ^ d
+Callout 2: last capture = -1
+ 0: <unset>
+--->abcxyz
+ ^ a
+ 0: abcxyz
+
+/(?<=(abc)(?C))xyz/
+Capturing subpattern count = 1
+No options
+First char = 'x'
+Need char = 'z'
+ abcxyz\C+
+Callout 0: last capture = 1
+ 0: <unset>
+ 1: abc
+--->abcxyz
+ ^ )
+ 0: xyz
+ 1: abc
+
+/(?C)abc/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+
+/(?C)^abc/
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/(?C)a|b/S
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: a b
+
+/(?R)/
+Failed: recursive call could loop indefinitely at offset 3
+
+/(a|(?R))/
+Failed: recursive call could loop indefinitely at offset 6
+
+/(ab|(bc|(de|(?R))))/
+Failed: recursive call could loop indefinitely at offset 15
+
+/x(ab|(bc|(de|(?R))))/
+Capturing subpattern count = 3
+No options
+First char = 'x'
+No need char
+ xab
+ 0: xab
+ 1: ab
+ xbc
+ 0: xbc
+ 1: bc
+ 2: bc
+ xde
+ 0: xde
+ 1: de
+ 2: de
+ 3: de
+ xxab
+ 0: xxab
+ 1: xab
+ 2: xab
+ 3: xab
+ xxxab
+ 0: xxxab
+ 1: xxab
+ 2: xxab
+ 3: xxab
+ *** Failers
+No match
+ xyab
+No match
+
+/(ab|(bc|(de|(?1))))/
+Failed: recursive call could loop indefinitely at offset 15
+
+/x(ab|(bc|(de|(?1)x)x)x)/
+Failed: recursive call could loop indefinitely at offset 16
+
+/^([^()]|\((?1)*\))*$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ abc
+ 0: abc
+ 1: c
+ a(b)c
+ 0: a(b)c
+ 1: c
+ a(b(c))d
+ 0: a(b(c))d
+ 1: d
+ *** Failers)
+No match
+ a(b(c)d
+No match
+
+/^>abc>([^()]|\((?1)*\))*<xyz<$/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+Need char = '<'
+ >abc>123<xyz<
+ 0: >abc>123<xyz<
+ 1: 3
+ >abc>1(2)3<xyz<
+ 0: >abc>1(2)3<xyz<
+ 1: 3
+ >abc>(1(2)3)<xyz<
+ 0: >abc>(1(2)3)<xyz<
+ 1: (1(2)3)
+
+/(a(?1)b)/D
+------------------------------------------------------------------
+ 0 16 Bra 0
+ 3 10 Bra 1
+ 6 a
+ 8 3 Recurse
+ 11 b
+ 13 10 Ket
+ 16 16 Ket
+ 19 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'b'
+
+/(a(?1)+b)/D
+------------------------------------------------------------------
+ 0 22 Bra 0
+ 3 16 Bra 1
+ 6 a
+ 8 6 Bra 0
+ 11 3 Recurse
+ 14 6 KetRmax
+ 17 b
+ 19 16 Ket
+ 22 22 Ket
+ 25 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'b'
+
+/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
+Capturing subpattern count = 4
+Max back reference = 4
+Partial matching not supported
+Options: anchored caseless
+No first char
+No need char
+ 1221
+ 0: 1221
+ 1: 1221
+ 2: 1
+ Satan, oscillate my metallic sonatas!
+ 0: Satan, oscillate my metallic sonatas!
+ 1: <unset>
+ 2: <unset>
+ 3: Satan, oscillate my metallic sonatas
+ 4: S
+ A man, a plan, a canal: Panama!
+ 0: A man, a plan, a canal: Panama!
+ 1: <unset>
+ 2: <unset>
+ 3: A man, a plan, a canal: Panama
+ 4: A
+ Able was I ere I saw Elba.
+ 0: Able was I ere I saw Elba.
+ 1: <unset>
+ 2: <unset>
+ 3: Able was I ere I saw Elba
+ 4: A
+ *** Failers
+No match
+ The quick brown fox
+No match
+
+/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
+Capturing subpattern count = 2
+Partial matching not supported
+Options: anchored
+No first char
+No need char
+ 12
+ 0: 12
+ 1: 12
+ (((2+2)*-3)-7)
+ 0: (((2+2)*-3)-7)
+ 1: (((2+2)*-3)-7)
+ 2: -
+ -12
+ 0: -12
+ 1: -12
+ *** Failers
+No match
+ ((2+2)*-3)-7)
+No match
+
+/^(x(y|(?1){2})z)/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ xyz
+ 0: xyz
+ 1: xyz
+ 2: y
+ xxyzxyzz
+ 0: xxyzxyzz
+ 1: xxyzxyzz
+ 2: xyzxyz
+ *** Failers
+No match
+ xxyzz
+No match
+ xxyzxyzxyzz
+No match
+
+/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x
+Capturing subpattern count = 2
+Partial matching not supported
+Options: extended
+First char = '<'
+Need char = '>'
+ <>
+ 0: <>
+ 1: <>
+ 2: <>
+ <abcd>
+ 0: <abcd>
+ 1: <abcd>
+ 2: <abcd>
+ <abc <123> hij>
+ 0: <abc <123> hij>
+ 1: <abc <123> hij>
+ 2: <abc <123> hij>
+ <abc <def> hij>
+ 0: <def>
+ 1: <def>
+ 2: <def>
+ <abc<>def>
+ 0: <abc<>def>
+ 1: <abc<>def>
+ 2: <abc<>def>
+ <abc<>
+ 0: <>
+ 1: <>
+ 2: <>
+ *** Failers
+No match
+ <abc
+No match
+
+/(?1)/
+Failed: reference to non-existent subpattern at offset 3
+
+/((?2)(abc)/
+Failed: reference to non-existent subpattern at offset 4
+
+/^(abc)def(?1)/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ abcdefabc
+ 0: abcdefabc
+ 1: abc
+
+/^(a|b|c)=(?1)+/
+Capturing subpattern count = 1
+Options: anchored
+No first char
+No need char
+ a=a
+ 0: a=a
+ 1: a
+ a=b
+ 0: a=b
+ 1: a
+ a=bc
+ 0: a=bc
+ 1: a
+
+/^(a|b|c)=((?1))+/
+Capturing subpattern count = 2
+Options: anchored
+No first char
+No need char
+ a=a
+ 0: a=a
+ 1: a
+ 2: a
+ a=b
+ 0: a=b
+ 1: a
+ 2: b
+ a=bc
+ 0: a=bc
+ 1: a
+ 2: c
+
+/a(?P<name1>b|c)d(?P<longername2>e)/D
+------------------------------------------------------------------
+ 0 28 Bra 0
+ 3 a
+ 5 5 Bra 1
+ 8 b
+ 10 5 Alt
+ 13 c
+ 15 10 Ket
+ 18 d
+ 20 5 Bra 2
+ 23 e
+ 25 5 Ket
+ 28 28 Ket
+ 31 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+Named capturing subpatterns:
+ longername2 2
+ name1 1
+No options
+First char = 'a'
+Need char = 'e'
+ abde
+ 0: abde
+ 1: b
+ 2: e
+ acde
+ 0: acde
+ 1: c
+ 2: e
+
+/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
+------------------------------------------------------------------
+ 0 35 Bra 0
+ 3 21 Bra 0
+ 6 a
+ 8 13 Bra 1
+ 11 c
+ 13 5 Bra 2
+ 16 d
+ 18 5 Ket
+ 21 13 Ket
+ 24 21 Ket
+ 27 5 Bra 3
+ 30 a
+ 32 5 Ket
+ 35 35 Ket
+ 38 End
+------------------------------------------------------------------
+Capturing subpattern count = 3
+Named capturing subpatterns:
+ a 3
+ c 1
+ d 2
+No options
+First char = 'a'
+Need char = 'a'
+
+/(?P<a>a)...(?P=a)bbb(?P>a)d/D
+------------------------------------------------------------------
+ 0 28 Bra 0
+ 3 5 Bra 1
+ 6 a
+ 8 5 Ket
+ 11 Any
+ 12 Any
+ 13 Any
+ 14 \1
+ 17 bbb
+ 23 3 Recurse
+ 26 d
+ 28 28 Ket
+ 31 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Max back reference = 1
+Named capturing subpatterns:
+ a 1
+No options
+First char = 'a'
+Need char = 'd'
+
+/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i
+Capturing subpattern count = 4
+Max back reference = 4
+Named capturing subpatterns:
+ four 4
+ one 1
+ three 3
+ two 2
+Partial matching not supported
+Options: anchored caseless
+No first char
+No need char
+ 1221
+ 0: 1221
+ 1: 1221
+ 2: 1
+ Satan, oscillate my metallic sonatas!
+ 0: Satan, oscillate my metallic sonatas!
+ 1: <unset>
+ 2: <unset>
+ 3: Satan, oscillate my metallic sonatas
+ 4: S
+ A man, a plan, a canal: Panama!
+ 0: A man, a plan, a canal: Panama!
+ 1: <unset>
+ 2: <unset>
+ 3: A man, a plan, a canal: Panama
+ 4: A
+ Able was I ere I saw Elba.
+ 0: Able was I ere I saw Elba.
+ 1: <unset>
+ 2: <unset>
+ 3: Able was I ere I saw Elba
+ 4: A
+ *** Failers
+No match
+ The quick brown fox
+No match
+
+/((?(R)a|b))\1(?1)?/
+Capturing subpattern count = 1
+Max back reference = 1
+No options
+No first char
+No need char
+ bb
+ 0: bb
+ 1: b
+ bbaa
+ 0: bba
+ 1: b
+
+/(.*)a/sI
+Capturing subpattern count = 1
+Partial matching not supported
+Options: anchored dotall
+No first char
+Need char = 'a'
+
+/(.*)a\1/sI
+Capturing subpattern count = 1
+Max back reference = 1
+Partial matching not supported
+Options: dotall
+No first char
+Need char = 'a'
+
+/(.*)a(b)\2/sI
+Capturing subpattern count = 2
+Max back reference = 2
+Partial matching not supported
+Options: anchored dotall
+No first char
+Need char = 'b'
+
+/((.*)a|(.*)b)z/sI
+Capturing subpattern count = 3
+Partial matching not supported
+Options: anchored dotall
+No first char
+Need char = 'z'
+
+/((.*)a|(.*)b)z\1/sI
+Capturing subpattern count = 3
+Max back reference = 1
+Partial matching not supported
+Options: dotall
+No first char
+Need char = 'z'
+
+/((.*)a|(.*)b)z\2/sI
+Capturing subpattern count = 3
+Max back reference = 2
+Partial matching not supported
+Options: dotall
+No first char
+Need char = 'z'
+
+/((.*)a|(.*)b)z\3/sI
+Capturing subpattern count = 3
+Max back reference = 3
+Partial matching not supported
+Options: dotall
+No first char
+Need char = 'z'
+
+/((.*)a|^(.*)b)z\3/sI
+Capturing subpattern count = 3
+Max back reference = 3
+Partial matching not supported
+Options: anchored dotall
+No first char
+Need char = 'z'
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI
+Capturing subpattern count = 31
+Partial matching not supported
+Options: anchored dotall
+No first char
+No need char
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI
+Capturing subpattern count = 31
+Max back reference = 31
+Partial matching not supported
+Options: dotall
+No first char
+No need char
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI
+Capturing subpattern count = 32
+Max back reference = 32
+Partial matching not supported
+Options: dotall
+No first char
+No need char
+
+/(a)(bc)/ND
+------------------------------------------------------------------
+ 0 21 Bra 0
+ 3 5 Bra 0
+ 6 a
+ 8 5 Ket
+ 11 7 Bra 0
+ 14 bc
+ 18 7 Ket
+ 21 21 Ket
+ 24 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options:
+First char = 'a'
+Need char = 'c'
+ abc
+ 0: abc
+
+/(?P<one>a)(bc)/ND
+------------------------------------------------------------------
+ 0 21 Bra 0
+ 3 5 Bra 1
+ 6 a
+ 8 5 Ket
+ 11 7 Bra 0
+ 14 bc
+ 18 7 Ket
+ 21 21 Ket
+ 24 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Named capturing subpatterns:
+ one 1
+Options:
+First char = 'a'
+Need char = 'c'
+ abc
+ 0: abc
+ 1: a
+
+/(a)(?P<named>bc)/ND
+------------------------------------------------------------------
+ 0 21 Bra 0
+ 3 5 Bra 0
+ 6 a
+ 8 5 Ket
+ 11 7 Bra 1
+ 14 bc
+ 18 7 Ket
+ 21 21 Ket
+ 24 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Named capturing subpatterns:
+ named 1
+Options:
+First char = 'a'
+Need char = 'c'
+
+/(a+)*zz/
+Capturing subpattern count = 1
+Partial matching not supported
+No options
+No first char
+Need char = 'z'
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
+Minimum match limit = 8
+ 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
+ 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ aaaaaaaaaaaaaz\M
+Minimum match limit = 32768
+No match
+
+/(aaa(?C1)bbb|ab)/
+Capturing subpattern count = 1
+No options
+First char = 'a'
+Need char = 'b'
+ aaabbb
+--->aaabbb
+ 1 ^ ^ b
+ 0: aaabbb
+ 1: aaabbb
+ aaabbb\C*0
+--->aaabbb
+ 1 ^ ^ b
+ 0: aaabbb
+ 1: aaabbb
+ aaabbb\C*1
+--->aaabbb
+ 1 ^ ^ b
+Callout data = 1
+ 0: ab
+ 1: ab
+ aaabbb\C*-1
+--->aaabbb
+ 1 ^ ^ b
+Callout data = -1
+No match
+
+/ab(?P<one>cd)ef(?P<two>gh)/
+Capturing subpattern count = 2
+Named capturing subpatterns:
+ one 1
+ two 2
+No options
+First char = 'a'
+Need char = 'h'
+ abcdefgh
+ 0: abcdefgh
+ 1: cd
+ 2: gh
+ abcdefgh\C1\Gtwo
+ 0: abcdefgh
+ 1: cd
+ 2: gh
+ 1C cd (2)
+ 2G gh (2)
+ abcdefgh\Cone\Ctwo
+ 0: abcdefgh
+ 1: cd
+ 2: gh
+ 1C cd (2)
+ 2C gh (2)
+ abcdefgh\Cthree
+no parentheses with name "three"
+ 0: abcdefgh
+ 1: cd
+ 2: gh
+
+/(?P<Tes>)(?P<Test>)/D
+------------------------------------------------------------------
+ 0 15 Bra 0
+ 3 3 Bra 1
+ 6 3 Ket
+ 9 3 Bra 2
+ 12 3 Ket
+ 15 15 Ket
+ 18 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+Named capturing subpatterns:
+ Tes 1
+ Test 2
+No options
+No first char
+No need char
+
+/(?P<Test>)(?P<Tes>)/D
+------------------------------------------------------------------
+ 0 15 Bra 0
+ 3 3 Bra 1
+ 6 3 Ket
+ 9 3 Bra 2
+ 12 3 Ket
+ 15 15 Ket
+ 18 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+Named capturing subpatterns:
+ Tes 2
+ Test 1
+No options
+No first char
+No need char
+
+/(?P<Z>zz)(?P<A>aa)/
+Capturing subpattern count = 2
+Named capturing subpatterns:
+ A 2
+ Z 1
+No options
+First char = 'z'
+Need char = 'a'
+ zzaa\CZ
+ 0: zzaa
+ 1: zz
+ 2: aa
+ 1C zz (2)
+ zzaa\CA
+ 0: zzaa
+ 1: zz
+ 2: aa
+ 2C aa (2)
+
+/(?P<x>eks)(?P<x>eccs)/
+Failed: two named groups have the same name at offset 16
+
+/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/
+Failed: two named groups have the same name at offset 31
+
+"\[((?P<elem>\d+)(,(?P>elem))*)\]"
+Capturing subpattern count = 3
+Named capturing subpatterns:
+ elem 2
+Partial matching not supported
+No options
+First char = '['
+Need char = ']'
+ [10,20,30,5,5,4,4,2,43,23,4234]
+ 0: [10,20,30,5,5,4,4,2,43,23,4234]
+ 1: 10,20,30,5,5,4,4,2,43,23,4234
+ 2: 10
+ 3: ,4234
+ *** Failers
+No match
+ []
+No match
+
+"\[((?P<elem>\d+)(,(?P>elem))*)?\]"
+Capturing subpattern count = 3
+Named capturing subpatterns:
+ elem 2
+Partial matching not supported
+No options
+First char = '['
+Need char = ']'
+ [10,20,30,5,5,4,4,2,43,23,4234]
+ 0: [10,20,30,5,5,4,4,2,43,23,4234]
+ 1: 10,20,30,5,5,4,4,2,43,23,4234
+ 2: 10
+ 3: ,4234
+ []
+ 0: []
+
+/(a(b(?2)c))?/D
+------------------------------------------------------------------
+ 0 25 Bra 0
+ 3 Brazero
+ 4 18 Bra 1
+ 7 a
+ 9 10 Bra 2
+ 12 b
+ 14 9 Recurse
+ 17 c
+ 19 10 Ket
+ 22 18 Ket
+ 25 25 Ket
+ 28 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+No options
+No first char
+No need char
+
+/(a(b(?2)c))*/D
+------------------------------------------------------------------
+ 0 25 Bra 0
+ 3 Brazero
+ 4 18 Bra 1
+ 7 a
+ 9 10 Bra 2
+ 12 b
+ 14 9 Recurse
+ 17 c
+ 19 10 Ket
+ 22 18 KetRmax
+ 25 25 Ket
+ 28 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+No options
+No first char
+No need char
+
+/(a(b(?2)c)){0,2}/D
+------------------------------------------------------------------
+ 0 53 Bra 0
+ 3 Brazero
+ 4 46 Bra 0
+ 7 18 Bra 1
+ 10 a
+ 12 10 Bra 2
+ 15 b
+ 17 12 Recurse
+ 20 c
+ 22 10 Ket
+ 25 18 Ket
+ 28 Brazero
+ 29 18 Bra 1
+ 32 a
+ 34 10 Bra 2
+ 37 b
+ 39 12 Recurse
+ 42 c
+ 44 10 Ket
+ 47 18 Ket
+ 50 46 Ket
+ 53 53 Ket
+ 56 End
+------------------------------------------------------------------
+Capturing subpattern count = 2
+No options
+No first char
+No need char
+
+/[ab]{1}+/D
+------------------------------------------------------------------
+ 0 47 Bra 0
+ 3 41 Once
+ 6 [ab]{1,1}
+ 44 41 Ket
+ 47 47 Ket
+ 50 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
+/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i
+Capturing subpattern count = 3
+Partial matching not supported
+Options: caseless
+No first char
+Need char = 'g' (caseless)
+ Baby Bjorn Active Carrier - With free SHIPPING!!
+ 0: Baby Bjorn Active Carrier - With free SHIPPING!!
+ 1: Baby Bjorn Active Carrier - With free SHIPPING!!
+
+/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/iS
+Capturing subpattern count = 3
+Partial matching not supported
+Options: caseless
+No first char
+Need char = 'g' (caseless)
+Study returned NULL
+ Baby Bjorn Active Carrier - With free SHIPPING!!
+ 0: Baby Bjorn Active Carrier - With free SHIPPING!!
+ 1: Baby Bjorn Active Carrier - With free SHIPPING!!
+
+/a*.*b/SD
+------------------------------------------------------------------
+ 0 9 Bra 0
+ 3 a*
+ 5 Any*
+ 7 b
+ 9 9 Ket
+ 12 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+Need char = 'b'
+Study returned NULL
+
+/(a|b)*.?c/SD
+------------------------------------------------------------------
+ 0 21 Bra 0
+ 3 Brazero
+ 4 5 Bra 1
+ 7 a
+ 9 5 Alt
+ 12 b
+ 14 10 KetRmax
+ 17 Any?
+ 19 c
+ 21 21 Ket
+ 24 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+No options
+No first char
+Need char = 'c'
+Study returned NULL
+
+/abc(?C255)de(?C)f/D
+------------------------------------------------------------------
+ 0 27 Bra 0
+ 3 abc
+ 9 Callout 255 10 1
+ 15 de
+ 19 Callout 0 16 1
+ 25 f
+ 27 27 Ket
+ 30 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'f'
+
+/abcde/CD
+------------------------------------------------------------------
+ 0 49 Bra 0
+ 3 Callout 255 0 1
+ 9 a
+ 11 Callout 255 1 1
+ 17 b
+ 19 Callout 255 2 1
+ 25 c
+ 27 Callout 255 3 1
+ 33 d
+ 35 Callout 255 4 1
+ 41 e
+ 43 Callout 255 5 0
+ 49 49 Ket
+ 52 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options:
+First char = 'a'
+Need char = 'e'
+ abcde
+--->abcde
+ +0 ^ a
+ +1 ^^ b
+ +2 ^ ^ c
+ +3 ^ ^ d
+ +4 ^ ^ e
+ +5 ^ ^
+ 0: abcde
+ abcdfe
+--->abcdfe
+ +0 ^ a
+ +1 ^^ b
+ +2 ^ ^ c
+ +3 ^ ^ d
+ +4 ^ ^ e
+No match
+
+/a*b/CD
+------------------------------------------------------------------
+ 0 25 Bra 0
+ 3 Callout 255 0 2
+ 9 a*
+ 11 Callout 255 2 1
+ 17 b
+ 19 Callout 255 3 0
+ 25 25 Ket
+ 28 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+Options:
+No first char
+Need char = 'b'
+ ab
+--->ab
+ +0 ^ a*
+ +2 ^^ b
+ +3 ^ ^
+ 0: ab
+ aaaab
+--->aaaab
+ +0 ^ a*
+ +2 ^ ^ b
+ +3 ^ ^
+ 0: aaaab
+ aaaacb
+--->aaaacb
+ +0 ^ a*
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^^ b
+ +2 ^ b
+ +0 ^ a*
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^^ b
+ +2 ^ b
+ +0 ^ a*
+ +2 ^ ^ b
+ +2 ^^ b
+ +2 ^ b
+ +0 ^ a*
+ +2 ^^ b
+ +2 ^ b
+ +0 ^ a*
+ +2 ^ b
+ +0 ^ a*
+ +2 ^ b
+ +3 ^^
+ 0: b
+
+/a+b/CD
+------------------------------------------------------------------
+ 0 25 Bra 0
+ 3 Callout 255 0 2
+ 9 a+
+ 11 Callout 255 2 1
+ 17 b
+ 19 Callout 255 3 0
+ 25 25 Ket
+ 28 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Partial matching not supported
+Options:
+First char = 'a'
+Need char = 'b'
+ ab
+--->ab
+ +0 ^ a+
+ +2 ^^ b
+ +3 ^ ^
+ 0: ab
+ aaaab
+--->aaaab
+ +0 ^ a+
+ +2 ^ ^ b
+ +3 ^ ^
+ 0: aaaab
+ aaaacb
+--->aaaacb
+ +0 ^ a+
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^^ b
+ +0 ^ a+
+ +2 ^ ^ b
+ +2 ^ ^ b
+ +2 ^^ b
+ +0 ^ a+
+ +2 ^ ^ b
+ +2 ^^ b
+ +0 ^ a+
+ +2 ^^ b
+No match
+
+/(abc|def)x/CD
+------------------------------------------------------------------
+ 0 92 Bra 0
+ 3 Callout 255 0 9
+ 9 33 Bra 1
+ 12 Callout 255 1 1
+ 18 a
+ 20 Callout 255 2 1
+ 26 b
+ 28 Callout 255 3 1
+ 34 c
+ 36 Callout 255 4 0
+ 42 33 Alt
+ 45 Callout 255 5 1
+ 51 d
+ 53 Callout 255 6 1
+ 59 e
+ 61 Callout 255 7 1
+ 67 f
+ 69 Callout 255 8 0
+ 75 66 Ket
+ 78 Callout 255 9 1
+ 84 x
+ 86 Callout 255 10 0
+ 92 92 Ket
+ 95 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Options:
+No first char
+Need char = 'x'
+ abcx
+--->abcx
+ +0 ^ (abc|def)
+ +1 ^ a
+ +2 ^^ b
+ +3 ^ ^ c
+ +4 ^ ^ |
+ +9 ^ ^ x
++10 ^ ^
+ 0: abcx
+ 1: abc
+ defx
+--->defx
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +6 ^^ e
+ +7 ^ ^ f
+ +8 ^ ^ )
+ +9 ^ ^ x
++10 ^ ^
+ 0: defx
+ 1: def
+ abcdefzx
+--->abcdefzx
+ +0 ^ (abc|def)
+ +1 ^ a
+ +2 ^^ b
+ +3 ^ ^ c
+ +4 ^ ^ |
+ +9 ^ ^ x
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +6 ^^ e
+ +7 ^ ^ f
+ +8 ^ ^ )
+ +9 ^ ^ x
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+ +0 ^ (abc|def)
+ +1 ^ a
+ +5 ^ d
+No match
+
+/(ab|cd){3,4}/C
+Capturing subpattern count = 1
+Options:
+No first char
+No need char
+ ababab
+--->ababab
+ +0 ^ (ab|cd){3,4}
+ +1 ^ a
+ +2 ^^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +2 ^ ^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +2 ^ ^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +4 ^ ^ c
++12 ^ ^
+ 0: ababab
+ 1: ab
+ abcdabcd
+--->abcdabcd
+ +0 ^ (ab|cd){3,4}
+ +1 ^ a
+ +2 ^^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +4 ^ ^ c
+ +5 ^ ^ d
+ +6 ^ ^ )
+ +1 ^ ^ a
+ +2 ^ ^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +4 ^ ^ c
+ +5 ^ ^ d
+ +6 ^ ^ )
++12 ^ ^
+ 0: abcdabcd
+ 1: cd
+ abcdcdcdcdcd
+--->abcdcdcdcdcd
+ +0 ^ (ab|cd){3,4}
+ +1 ^ a
+ +2 ^^ b
+ +3 ^ ^ |
+ +1 ^ ^ a
+ +4 ^ ^ c
+ +5 ^ ^ d
+ +6 ^ ^ )
+ +1 ^ ^ a
+ +4 ^ ^ c
+ +5 ^ ^ d
+ +6 ^ ^ )
+ +1 ^ ^ a
+ +4 ^ ^ c
+ +5 ^ ^ d
+ +6 ^ ^ )
++12 ^ ^
+ 0: abcdcdcd
+ 1: cd
+
+/([ab]{,4}c|xy)/CD
+------------------------------------------------------------------
+ 0 131 Bra 0
+ 3 Callout 255 0 14
+ 9 88 Bra 1
+ 12 Callout 255 1 4
+ 18 [ab]
+ 51 Callout 255 5 1
+ 57 {
+ 59 Callout 255 6 1
+ 65 ,
+ 67 Callout 255 7 1
+ 73 4
+ 75 Callout 255 8 1
+ 81 }
+ 83 Callout 255 9 1
+ 89 c
+ 91 Callout 255 10 0
+ 97 25 Alt
+100 Callout 255 11 1
+106 x
+108 Callout 255 12 1
+114 y
+116 Callout 255 13 0
+122 113 Ket
+125 Callout 255 14 0
+131 131 Ket
+134 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Options:
+No first char
+No need char
+ Note: that { does NOT introduce a quantifier
+--->Note: that { does NOT introduce a quantifier
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
+ +5 ^^ {
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
+ +5 ^^ {
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
+ +5 ^^ {
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+ +0 ^ ([ab]{,4}c|xy)
+ +1 ^ [ab]
++11 ^ x
+No match
+
+/([ab]{1,4}c|xy){4,5}?123/CD
+------------------------------------------------------------------
+ 0 485 Bra 0
+ 3 Callout 255 0 21
+ 9 61 Bra 1
+ 12 Callout 255 1 9
+ 18 [ab]{1,4}
+ 56 Callout 255 10 1
+ 62 c
+ 64 Callout 255 11 0
+ 70 25 Alt
+ 73 Callout 255 12 1
+ 79 x
+ 81 Callout 255 13 1
+ 87 y
+ 89 Callout 255 14 0
+ 95 86 Ket
+ 98 61 Bra 1
+101 Callout 255 1 9
+107 [ab]{1,4}
+145 Callout 255 10 1
+151 c
+153 Callout 255 11 0
+159 25 Alt
+162 Callout 255 12 1
+168 x
+170 Callout 255 13 1
+176 y
+178 Callout 255 14 0
+184 86 Ket
+187 61 Bra 1
+190 Callout 255 1 9
+196 [ab]{1,4}
+234 Callout 255 10 1
+240 c
+242 Callout 255 11 0
+248 25 Alt
+251 Callout 255 12 1
+257 x
+259 Callout 255 13 1
+265 y
+267 Callout 255 14 0
+273 86 Ket
+276 61 Bra 1
+279 Callout 255 1 9
+285 [ab]{1,4}
+323 Callout 255 10 1
+329 c
+331 Callout 255 11 0
+337 25 Alt
+340 Callout 255 12 1
+346 x
+348 Callout 255 13 1
+354 y
+356 Callout 255 14 0
+362 86 Ket
+365 Braminzero
+366 61 Bra 1
+369 Callout 255 1 9
+375 [ab]{1,4}
+413 Callout 255 10 1
+419 c
+421 Callout 255 11 0
+427 25 Alt
+430 Callout 255 12 1
+436 x
+438 Callout 255 13 1
+444 y
+446 Callout 255 14 0
+452 86 Ket
+455 Callout 255 21 1
+461 1
+463 Callout 255 22 1
+469 2
+471 Callout 255 23 1
+477 3
+479 Callout 255 24 0
+485 485 Ket
+488 End
+------------------------------------------------------------------
+Capturing subpattern count = 1
+Partial matching not supported
+Options:
+No first char
+Need char = '3'
+ aacaacaacaacaac123
+--->aacaacaacaacaac123
+ +0 ^ ([ab]{1,4}c|xy){4,5}?
+ +1 ^ [ab]{1,4}
++10 ^ ^ c
++11 ^ ^ |
+ +1 ^ ^ [ab]{1,4}
++10 ^ ^ c
++11 ^ ^ |
+ +1 ^ ^ [ab]{1,4}
++10 ^ ^ c
++11 ^ ^ |
+ +1 ^ ^ [ab]{1,4}
++10 ^ ^ c
++11 ^ ^ |
++21 ^ ^ 1
+ +1 ^ ^ [ab]{1,4}
++10 ^ ^ c
++11 ^ ^ |
++21 ^ ^ 1
++22 ^ ^ 2
++23 ^ ^ 3
++24 ^ ^
+ 0: aacaacaacaacaac123
+ 1: aac
+
+/\b.*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ ab cd\>1
+ 0: cd
+
+/\b.*/Is
+Capturing subpattern count = 0
+Partial matching not supported
+Options: dotall
+No first char
+No need char
+ ab cd\>1
+ 0: cd
+
+/(?!.bcd).*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ Xbcd12345
+ 0: bcd12345
+
+/abcde/
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'e'
+ ab\P
+Partial match
+ abc\P
+Partial match
+ abcd\P
+Partial match
+ abcde\P
+ 0: abcde
+ the quick brown abc\P
+Partial match
+ ** Failers\P
+No match
+ the quick brown abxyz fox\P
+No match
+
+"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"
+Capturing subpattern count = 3
+Options: anchored
+No first char
+Need char = '/'
+ 13/05/04\P
+ 0: 13/05/04
+ 1: 13
+ 2: 05
+ 13/5/2004\P
+ 0: 13/5/2004
+ 1: 13
+ 2: 5
+ 3: 20
+ 02/05/09\P
+ 0: 02/05/09
+ 1: 02
+ 2: 05
+ 1\P
+Partial match
+ 1/2\P
+Partial match
+ 1/2/0\P
+Partial match
+ 1/2/04\P
+ 0: 1/2/04
+ 1: 1
+ 2: 2
+ 0\P
+Partial match
+ 02/\P
+Partial match
+ 02/0\P
+Partial match
+ 02/1\P
+Partial match
+ ** Failers\P
+No match
+ \P
+No match
+ 123\P
+No match
+ 33/4/04\P
+No match
+ 3/13/04\P
+No match
+ 0/1/2003\P
+No match
+ 0/\P
+No match
+ 02/0/\P
+No match
+ 02/13\P
+No match
+
+/0{0,2}ABC/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+Need char = 'C'
+
+/\d{3,}ABC/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+Need char = 'C'
+
+/\d*ABC/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+Need char = 'C'
+
+/[abc]+DE/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+Need char = 'E'
+
+/[abc]?123/
+Capturing subpattern count = 0
+No options
+No first char
+Need char = '3'
+ 123\P
+ 0: 123
+ a\P
+Partial match
+ b\P
+Partial match
+ c\P
+Partial match
+ c12\P
+Partial match
+ c123\P
+ 0: c123
+
+/^(?:\d){3,5}X/
+Capturing subpattern count = 0
+Options: anchored
+No first char
+Need char = 'X'
+ 1\P
+Partial match
+ 123\P
+Partial match
+ 123X
+ 0: 123X
+ 1234\P
+Partial match
+ 1234X
+ 0: 1234X
+ 12345\P
+Partial match
+ 12345X
+ 0: 12345X
+ *** Failers
+No match
+ 1X
+No match
+ 123456\P
+No match
+
+/abc/>testsavedregex
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+Compiled regex written to testsavedregex
+<testsavedregex
+Compiled regex loaded from testsavedregex
+No study data
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+ abc
+ 0: abc
+ ** Failers
+No match
+ bca
+No match
+
+/abc/F>testsavedregex
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+Compiled regex written to testsavedregex
+<testsavedregex
+Compiled regex (byte-inverted) loaded from testsavedregex
+No study data
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+ abc
+ 0: abc
+ ** Failers
+No match
+ bca
+No match
+
+/(a|b)/S>testsavedregex
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+Starting byte set: a b
+Compiled regex written to testsavedregex
+Study data written to testsavedregex
+<testsavedregex
+Compiled regex loaded from testsavedregex
+Study data loaded from testsavedregex
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+Starting byte set: a b
+ abc
+ 0: a
+ 1: a
+ ** Failers
+ 0: a
+ 1: a
+ def
+No match
+
+/(a|b)/SF>testsavedregex
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+Starting byte set: a b
+Compiled regex written to testsavedregex
+Study data written to testsavedregex
+<testsavedregex
+Compiled regex (byte-inverted) loaded from testsavedregex
+Study data loaded from testsavedregex
+Capturing subpattern count = 1
+No options
+No first char
+No need char
+Starting byte set: a b
+ abc
+ 0: a
+ 1: a
+ ** Failers
+ 0: a
+ 1: a
+ def
+No match
+
+~<(\w+)/?>(.)*</(\1)>~smg
+Capturing subpattern count = 3
+Max back reference = 1
+Partial matching not supported
+Options: multiline dotall
+First char = '<'
+Need char = '>'
+ <!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>
+ 0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
+ 1: seite
+ 2: \x0a
+ 3: seite
+
+/^a/IF
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
/ End of testinput2 /
Capturing subpattern count = 0
No options
First char = ' '
Need char = ' '
-