You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by pg...@apache.org on 2007/11/26 17:50:09 UTC

svn commit: r598339 [36/37] - in /httpd/httpd/vendor/pcre/current: ./ doc/ doc/html/ testdata/

Modified: httpd/httpd/vendor/pcre/current/testdata/testoutput2
URL: http://svn.apache.org/viewvc/httpd/httpd/vendor/pcre/current/testdata/testoutput2?rev=598339&r1=598338&r2=598339&view=diff
==============================================================================
--- httpd/httpd/vendor/pcre/current/testdata/testoutput2 (original)
+++ httpd/httpd/vendor/pcre/current/testdata/testoutput2 Mon Nov 26 08:49:53 2007
@@ -1,12 +1,10 @@
-PCRE version 5.0 13-Sep-2004
-
-/(a)b|/
+/(a)b|/I
 Capturing subpattern count = 1
 No options
 No first char
 No need char
 
-/abc/
+/abc/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -24,7 +22,7 @@
     ABC
 No match
 
-/^abc/
+/^abc/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -40,35 +38,35 @@
     \Adefabc
 No match
 
-/a+bc/
+/a+bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'c'
 
-/a*bc/
+/a*bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 Need char = 'c'
 
-/a{3}bc/
+/a{3}bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'c'
 
-/(abc|a+z)/
+/(abc|a+z)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/^abc$/
+/^abc$/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -80,10 +78,10 @@
     def\nabc
 No match
 
-/ab\gdef/X
+/ab\idef/X
 Failed: unrecognized character follows \ at offset 3
 
-/(?X)ab\gdef/X
+/(?X)ab\idef/X
 Failed: unrecognized character follows \ at offset 7
 
 /x{5,4}/
@@ -113,21 +111,21 @@
 /(?z)abc/
 Failed: unrecognized character after (? at offset 2
 
-/.*b/
+/.*b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'b'
 
-/.*?b/
+/.*?b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'b'
 
-/cat|dog|elephant/
+/cat|dog|elephant/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -137,7 +135,7 @@
     this sentences rambles on and on for a while and then reaches elephant
  0: elephant
 
-/cat|dog|elephant/S
+/cat|dog|elephant/IS
 Capturing subpattern count = 0
 No options
 No first char
@@ -148,7 +146,7 @@
     this sentences rambles on and on for a while and then reaches elephant
  0: elephant
 
-/cat|dog|elephant/iS
+/cat|dog|elephant/IiS
 Capturing subpattern count = 0
 Options: caseless
 No first char
@@ -159,14 +157,14 @@
     this sentences rambles on and on for a while to elephant ElePhant
  0: elephant
 
-/a|[bcd]/S
+/a|[bcd]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b c d 
 
-/(a|[^\dZ])/S
+/(a|[^\dZ])/IS
 Capturing subpattern count = 1
 No options
 No first char
@@ -186,7 +184,7 @@
   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
   \xfc \xfd \xfe \xff 
 
-/(a|b)*[\s]/S
+/(a|b)*[\s]/IS
 Capturing subpattern count = 1
 No options
 No first char
@@ -199,7 +197,7 @@
 /{4,5}abc/
 Failed: nothing to repeat at offset 4
 
-/(a)(b)(c)\2/
+/(a)(b)(c)\2/I
 Capturing subpattern count = 3
 Max back reference = 2
 No options
@@ -224,13 +222,13 @@
  0: abcb
  1: a
  2: b
-    \O12abcb 
+    \O12abcb
  0: abcb
  1: a
  2: b
  3: c
 
-/(a)bc|(a)(b)\2/
+/(a)bc|(a)(b)\2/I
 Capturing subpattern count = 3
 Max back reference = 2
 No options
@@ -272,7 +270,7 @@
  2: a
  3: b
 
-/abc$/E
+/abc$/IE
 Capturing subpattern count = 0
 Options: dollar_endonly
 First char = 'a'
@@ -289,7 +287,7 @@
 /(a)(b)(c)(d)(e)\6/
 Failed: reference to non-existent subpattern at offset 17
 
-/the quick brown fox/
+/the quick brown fox/I
 Capturing subpattern count = 0
 No options
 First char = 't'
@@ -299,7 +297,7 @@
     this is a line with the quick brown fox
  0: the quick brown fox
 
-/the quick brown fox/A
+/the quick brown fox/IA
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -314,7 +312,7 @@
 /ab(?z)cd/
 Failed: unrecognized character after (? at offset 4
 
-/^abc|def/
+/^abc|def/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -324,11 +322,11 @@
     abcdef\B
  0: def
 
-/.*((abc)$|(def))/
+/.*((abc)$|(def))/I
 Capturing subpattern count = 3
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
     defabc
  0: defabc
@@ -340,19 +338,19 @@
  2: <unset>
  3: def
 
-/abc/P
+/abc/IP
     abc
  0: abc
     *** Failers
 No match: POSIX code 17: match failed
-    
-/^abc|def/P
+
+/^abc|def/IP
     abcdef
  0: abc
     abcdef\B
  0: def
 
-/.*((abc)$|(def))/P
+/.*((abc)$|(def))/IP
     defabc
  0: defabc
  1: abc
@@ -361,37 +359,37 @@
  0: def
  1: def
  3: def
-  
-/the quick brown fox/P
+
+/the quick brown fox/IP
     the quick brown fox
  0: the quick brown fox
-    *** Failers 
+    *** Failers
 No match: POSIX code 17: match failed
-    The Quick Brown Fox 
+    The Quick Brown Fox
 No match: POSIX code 17: match failed
 
-/the quick brown fox/Pi
+/the quick brown fox/IPi
     the quick brown fox
  0: the quick brown fox
-    The Quick Brown Fox 
+    The Quick Brown Fox
  0: The Quick Brown Fox
 
-/abc.def/P
+/abc.def/IP
     *** Failers
 No match: POSIX code 17: match failed
     abc\ndef
 No match: POSIX code 17: match failed
-    
-/abc$/P
+
+/abc$/IP
     abc
  0: abc
-    abc\n 
+    abc\n
  0: abc
 
-/(abc)\2/P
+/(abc)\2/IP
 Failed: POSIX code 15: bad back reference at offset 7     
 
-/(abc\1)/P
+/(abc\1)/IP
     abc
 No match: POSIX code 17: match failed
 
@@ -401,16 +399,16 @@
 /a[]b/
 Failed: missing terminating ] for character class at offset 4
 
-/[^aeiou ]{3,}/
+/[^aeiou ]{3,}/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
-    co-processors, and for 
+    co-processors, and for
  0: -pr
-    
-/<.*>/
+
+/<.*>/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -419,7 +417,7 @@
     abc<def>ghi<klm>nop
  0: <def>ghi<klm>
 
-/<.*?>/
+/<.*?>/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -428,7 +426,7 @@
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*>/U
+/<.*>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -436,8 +434,8 @@
 Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
-    
-/(?U)<.*>/
+
+/(?U)<.*>/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -446,7 +444,7 @@
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*?>/U
+/<.*?>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -454,8 +452,8 @@
 Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>ghi<klm>
-    
-/={3,}/U
+
+/={3,}/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -463,8 +461,8 @@
 Need char = '='
     abc========def
  0: ===
-    
-/(?U)={3,}?/
+
+/(?U)={3,}?/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -472,21 +470,21 @@
 Need char = '='
     abc========def
  0: ========
-    
-/(?<!bar|cattle)foo/
+
+/(?<!bar|cattle)foo/I
 Capturing subpattern count = 0
 No options
 First char = 'f'
 Need char = 'o'
     foo
  0: foo
-    catfoo 
+    catfoo
  0: foo
     *** Failers
 No match
     the barfoo
 No match
-    and cattlefoo   
+    and cattlefoo
 No match
 
 /(?<=a+)b/
@@ -498,69 +496,68 @@
 /(?<!(foo)a\1)bar/
 Failed: lookbehind assertion is not fixed length at offset 12
 
-/(?i)abc/
+/(?i)abc/I
 Capturing subpattern count = 0
 Options: caseless
 First char = 'a' (caseless)
 Need char = 'c' (caseless)
 
-/(a|(?m)a)/
+/(a|(?m)a)/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/(?i)^1234/
+/(?i)^1234/I
 Capturing subpattern count = 0
 Options: anchored caseless
 No first char
 No need char
 
-/(^b|(?i)^d)/
+/(^b|(?i)^d)/I
 Capturing subpattern count = 1
 Options: anchored
-Case state changes
 No first char
 No need char
 
-/(?s).*/
+/(?s).*/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: anchored dotall
 No first char
 No need char
 
-/[abcd]/S
+/[abcd]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b c d 
 
-/(?i)[abcd]/S
+/(?i)[abcd]/IS
 Capturing subpattern count = 0
 Options: caseless
 No first char
 No need char
 Starting byte set: A B C D a b c d 
 
-/(?m)[xy]|(b|c)/S
+/(?m)[xy]|(b|c)/IS
 Capturing subpattern count = 1
 Options: multiline
 No first char
 No need char
 Starting byte set: b c x y 
 
-/(^a|^b)/m
+/(^a|^b)/Im
 Capturing subpattern count = 1
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
-/(?i)(^a|^b)/m
+/(?i)(^a|^b)/Im
 Capturing subpattern count = 1
 Options: caseless multiline
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
 /(a)(?(1)a|b|c)/
@@ -570,18 +567,21 @@
 Failed: conditional group contains more than two branches at offset 12
 
 /(?(1a)/
-Failed: malformed number after (?( at offset 4
+Failed: missing ) at offset 6
+
+/(?(1a))/
+Failed: reference to non-existent subpattern at offset 6
 
 /(?(?i))/
 Failed: assertion expected after (?( at offset 3
 
 /(?(abc))/
-Failed: assertion expected after (?( at offset 3
+Failed: reference to non-existent subpattern at offset 7
 
 /(?(?<ab))/
-Failed: unrecognized character after (?< at offset 5
+Failed: syntax error in subpattern name (missing terminator) at offset 7
 
-/((?s)blah)\s+\1/
+/((?s)blah)\s+\1/I
 Capturing subpattern count = 1
 Max back reference = 1
 Partial matching not supported
@@ -589,43 +589,40 @@
 First char = 'b'
 Need char = 'h'
 
-/((?i)blah)\s+\1/
+/((?i)blah)\s+\1/I
 Capturing subpattern count = 1
 Max back reference = 1
 Partial matching not supported
 No options
-Case state changes
 First char = 'b' (caseless)
 Need char = 'h' (caseless)
 
-/((?i)b)/DS
+/((?i)b)/IDZS
 ------------------------------------------------------------------
-  0  15 Bra 0
-  3   7 Bra 1
-  6  01 Opt
-  8  NC b
- 10   7 Ket
- 13  00 Opt
- 15  15 Ket
- 18     End
+        Bra
+        CBra 1
+     01 Opt
+     NC b
+        Ket
+     00 Opt
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
-Case state changes
 First char = 'b' (caseless)
 No need char
 Study returned NULL
 
-/(a*b|(?i:c*(?-i)d))/S
+/(a*b|(?i:c*(?-i)d))/IS
 Capturing subpattern count = 1
 Partial matching not supported
 No options
-Case state changes
 No first char
 No need char
 Starting byte set: C a b c d 
 
-/a$/
+/a$/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -634,14 +631,14 @@
  0: a
     a\n
  0: a
-    *** Failers 
+    *** Failers
 No match
     \Za
 No match
-    \Za\n   
+    \Za\n
 No match
 
-/a$/m
+/a$/Im
 Capturing subpattern count = 0
 Options: multiline
 First char = 'a'
@@ -650,26 +647,26 @@
  0: a
     a\n
  0: a
-    \Za\n   
+    \Za\n
  0: a
-    *** Failers 
+    *** Failers
 No match
     \Za
 No match
-    
-/\Aabc/m
+
+/\Aabc/Im
 Capturing subpattern count = 0
 Options: anchored multiline
 No first char
 No need char
 
-/^abc/m 
+/^abc/Im
 Capturing subpattern count = 0
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'c'
 
-/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
 Capturing subpattern count = 5
 Partial matching not supported
 Options: anchored
@@ -683,63 +680,65 @@
  4: bbbbccccc
  5: def
 
-/(?<=foo)[ab]/S
+/(?<=foo)[ab]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b 
 
-/(?<!foo)(alpha|omega)/S
+/(?<!foo)(alpha|omega)/IS
 Capturing subpattern count = 1
 No options
 No first char
 Need char = 'a'
 Starting byte set: a o 
 
-/(?!alphabet)[ab]/S
+/(?!alphabet)[ab]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b 
 
-/(?<=foo\n)^bar/m
+/(?<=foo\n)^bar/Im
 Capturing subpattern count = 0
+Contains explicit CR or LF match
 Options: multiline
 No first char
 Need char = 'r'
-    foo\nbarbar 
+    foo\nbarbar
  0: bar
     ***Failers
 No match
-    rhubarb 
+    rhubarb
 No match
     barbell
 No match
-    abc\nbarton 
+    abc\nbarton
 No match
 
-/^(?<=foo\n)bar/m
+/^(?<=foo\n)bar/Im
 Capturing subpattern count = 0
+Contains explicit CR or LF match
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'r'
-    foo\nbarbar 
+    foo\nbarbar
  0: bar
     ***Failers
 No match
-    rhubarb 
+    rhubarb
 No match
     barbell
 No match
-    abc\nbarton 
+    abc\nbarton
 No match
 
-/(?>^abc)/m
+/(?>^abc)/Im
 Capturing subpattern count = 0
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'c'
     abc
  0: abc
@@ -747,7 +746,7 @@
  0: abc
     *** Failers
 No match
-    defabc   
+    defabc
 No match
 
 /(?<=ab(c+)d)ef/
@@ -760,12 +759,8 @@
 Failed: lookbehind assertion is not fixed length at offset 13
 
 /The next three are in testinput2 because they have variable length branches/
-Capturing subpattern count = 0
-No options
-First char = 'T'
-Need char = 's'
 
-/(?<=bullock|donkey)-cart/
+/(?<=bullock|donkey)-cart/I
 Capturing subpattern count = 0
 No options
 First char = '-'
@@ -778,21 +773,20 @@
 No match
     cart
 No match
-    horse-and-cart    
+    horse-and-cart
 No match
-      
-/(?<=ab(?i)x|y|z)/
+
+/(?<=ab(?i)x|y|z)/I
 Capturing subpattern count = 0
 No options
-Case state changes
 No first char
 No need char
 
-/(?>.*)(?<=(abcd)|(xyz))/
+/(?>.*)(?<=(abcd)|(xyz))/I
 Capturing subpattern count = 2
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
     alphabetabcd
  0: alphabetabcd
@@ -802,10 +796,9 @@
  1: <unset>
  2: xyz
 
-/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/
+/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
 Capturing subpattern count = 0
 No options
-Case state changes
 First char = 'Z'
 Need char = 'Z'
     abxyZZ
@@ -818,56 +811,56 @@
  0: ZZ
     bZZ
  0: ZZ
-    BZZ     
+    BZZ
  0: ZZ
     *** Failers
 No match
-    ZZ 
+    ZZ
 No match
-    abXYZZ 
+    abXYZZ
 No match
     zzz
 No match
-    bzz  
+    bzz
 No match
 
-/(?<!(foo)a)bar/
+/(?<!(foo)a)bar/I
 Capturing subpattern count = 1
 No options
 First char = 'b'
 Need char = 'r'
     bar
  0: bar
-    foobbar 
+    foobbar
  0: bar
     *** Failers
 No match
-    fooabar  
+    fooabar
 No match
 
-/This one is here because Perl 5.005_02 doesn't fail it/
+/This one is here because Perl 5.005_02 doesn't fail it/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 Need char = 't'
 
-/^(a)?(?(1)a|b)+$/
+/^(a)?(?(1)a|b)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
     *** Failers
 No match
-    a 
+    a
 No match
 
-/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/
+/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 Need char = 'g'
 
-/^(a\1?){4}$/
+/^(a\1?){4}$/I
 Capturing subpattern count = 1
 Max back reference = 1
 Options: anchored
@@ -876,8 +869,8 @@
     aaaaaa
  0: aaaaaa
  1: aa
-    
-/These are syntax tests from Perl 5.005/
+
+/These are syntax tests from Perl 5.005/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
@@ -919,31 +912,31 @@
 /(a)|\2/
 Failed: reference to non-existent subpattern at offset 6
 
-/a[b-a]/i
+/a[b-a]/Ii
 Failed: range out of order in character class at offset 4
 
-/a[]b/i
+/a[]b/Ii
 Failed: missing terminating ] for character class at offset 4
 
-/a[/i
+/a[/Ii
 Failed: missing terminating ] for character class at offset 2
 
-/*a/i
+/*a/Ii
 Failed: nothing to repeat at offset 0
 
-/(*)b/i
+/(*)b/Ii
 Failed: nothing to repeat at offset 1
 
-/abc)/i
+/abc)/Ii
 Failed: unmatched parentheses at offset 3
 
-/(abc/i
+/(abc/Ii
 Failed: missing ) at offset 4
 
-/a**/i
+/a**/Ii
 Failed: nothing to repeat at offset 2
 
-/)(/i
+/)(/Ii
 Failed: unmatched parentheses at offset 0
 
 /:(?:/
@@ -968,7 +961,7 @@
 Failed: unrecognized character after (? at offset 3
 
 /(?(1?)a|b)/
-Failed: malformed number after (?( at offset 4
+Failed: malformed number or name after (?( at offset 4
 
 /(?(1)a|b|c)/
 Failed: conditional group contains more than two branches at offset 10
@@ -991,7 +984,7 @@
 /abc/\i
 Failed: \ at end of pattern at offset 4
 
-/(a)bc(d)/
+/(a)bc(d)/I
 Capturing subpattern count = 2
 No options
 First char = 'a'
@@ -1010,8 +1003,8 @@
  1: a
  2: d
 copy substring 5 failed -7
-     
-/(.{20})/
+
+/(.{20})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1023,13 +1016,13 @@
     abcdefghijklmnopqrstuvwxyz\C1
  0: abcdefghijklmnopqrst
  1: abcdefghijklmnopqrst
-copy substring 1 failed -6
+ 1C abcdefghijklmnopqrst (20)
     abcdefghijklmnopqrstuvwxyz\G1
  0: abcdefghijklmnopqrst
  1: abcdefghijklmnopqrst
  1G abcdefghijklmnopqrst (20)
-     
-/(.{15})/
+
+/(.{15})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1044,7 +1037,7 @@
  1C abcdefghijklmno (15)
  1G abcdefghijklmno (15)
 
-/(.{16})/
+/(.{16})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1056,17 +1049,17 @@
     abcdefghijklmnopqrstuvwxyz\C1\G1\L
  0: abcdefghijklmnop
  1: abcdefghijklmnop
-copy substring 1 failed -6
+ 1C abcdefghijklmnop (16)
  1G abcdefghijklmnop (16)
  0L abcdefghijklmnop
  1L abcdefghijklmnop
-    
-/^(a|(bc))de(f)/
+
+/^(a|(bc))de(f)/I
 Capturing subpattern count = 3
 Options: anchored
 No first char
 No need char
-    adef\G1\G2\G3\G4\L 
+    adef\G1\G2\G3\G4\L
  0: adef
  1: a
  2: <unset>
@@ -1079,7 +1072,7 @@
  1L a
  2L 
  3L f
-    bcdef\G1\G2\G3\G4\L 
+    bcdef\G1\G2\G3\G4\L
  0: bcdef
  1: bc
  2: bc
@@ -1092,54 +1085,54 @@
  1L bc
  2L bc
  3L f
-    adefghijk\C0 
+    adefghijk\C0
  0: adef
  1: a
  2: <unset>
  3: f
  0C adef (4)
-    
-/^abc\00def/
+
+/^abc\00def/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
-    abc\00def\L\C0 
+    abc\00def\L\C0
  0: abc\x00def
  0C abc (7)
  0L abc
-    
-/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): 432
+
+/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
 Capturing subpattern count = 8
 Partial matching not supported
+Contains explicit CR or LF match
 No options
 First char = 'w'
 Need char = 'd'
 
-/.*X/D
+/.*X/IDZ
 ------------------------------------------------------------------
-  0   7 Bra 0
-  3     Any*
-  5     X
-  7   7 Ket
- 10     End
+        Bra
+        Any*
+        X
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'X'
 
-/.*X/Ds
+/.*X/IDZs
 ------------------------------------------------------------------
-  0   7 Bra 0
-  3     Any*
-  5     X
-  7   7 Ket
- 10     End
+        Bra
+        Any*
+        X
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -1147,56 +1140,56 @@
 No first char
 Need char = 'X'
 
-/(.*X|^B)/D
+/(.*X|^B)/IDZ
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+        Bra
+        CBra 1
+        Any*
+        X
+        Alt
+        ^
+        B
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
-/(.*X|^B)/Ds
+/(.*X|^B)/IDZs
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+        Bra
+        CBra 1
+        Any*
+        X
+        Alt
+        ^
+        B
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
 Options: anchored dotall
 No first char
 No need char
-    
-/(?s)(.*X|^B)/D
+
+/(?s)(.*X|^B)/IDZ
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+        Bra
+        CBra 1
+        Any*
+        X
+        Alt
+        ^
+        B
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
@@ -1204,29 +1197,29 @@
 No first char
 No need char
 
-/(?s:.*X|^B)/D
+/(?s:.*X|^B)/IDZ
 ------------------------------------------------------------------
-  0  25 Bra 0
-  3   9 Bra 0
-  6  04 Opt
-  8     Any*
- 10     X
- 12   8 Alt
- 15  04 Opt
- 17     ^
- 18     B
- 20  17 Ket
- 23  00 Opt
- 25  25 Ket
- 28     End
+        Bra
+        Bra
+     04 Opt
+        Any*
+        X
+        Alt
+     04 Opt
+        ^
+        B
+        Ket
+     00 Opt
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
-/\Biss\B/+
+/\Biss\B/I+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1235,12 +1228,12 @@
  0: iss
  0+ issippi
 
-/\Biss\B/+P
+/\Biss\B/I+P
     Mississippi
  0: iss
  0+ issippi
 
-/iss/G+
+/iss/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1251,7 +1244,7 @@
  0: iss
  0+ ippi
 
-/\Biss\B/G+
+/\Biss\B/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1260,7 +1253,7 @@
  0: iss
  0+ issippi
 
-/\Biss\B/g+
+/\Biss\B/Ig+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1275,7 +1268,7 @@
     Mississippi\A
 No match
 
-/(?<=[Ms])iss/g+
+/(?<=[Ms])iss/Ig+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1286,7 +1279,7 @@
  0: iss
  0+ ippi
 
-/(?<=[Ms])iss/G+
+/(?<=[Ms])iss/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1295,7 +1288,7 @@
  0: iss
  0+ issippi
 
-/^iss/g+
+/^iss/Ig+
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1303,20 +1296,20 @@
     ississippi
  0: iss
  0+ issippi
-    
-/.*iss/g+
+
+/.*iss/Ig+
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 's'
-    abciss\nxyzisspqr 
+    abciss\nxyzisspqr
  0: abciss
  0+ \x0axyzisspqr
  0: xyziss
  0+ pqr
 
-/.i./+g
+/.i./I+g
 Capturing subpattern count = 0
 No options
 No first char
@@ -1342,11 +1335,11 @@
  0+ river
  0: riv
  0+ er
-    Missouri river\A  
+    Missouri river\A
  0: Mis
  0+ souri river
 
-/^.is/+g
+/^.is/I+g
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1355,8 +1348,9 @@
  0: Mis
  0+ sissippi
 
-/^ab\n/g+
+/^ab\n/Ig+
 Capturing subpattern count = 0
+Contains explicit CR or LF match
 Options: anchored
 No first char
 No need char
@@ -1364,10 +1358,11 @@
  0: ab\x0a
  0+ ab\x0acd
 
-/^ab\n/mg+
+/^ab\n/Img+
 Capturing subpattern count = 0
+Contains explicit CR or LF match
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 10
     ab\nab\ncd
  0: ab\x0a
@@ -1375,272 +1370,272 @@
  0: ab\x0a
  0+ cd
 
-/abc/
+/abc/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/abc|bac/
+/abc|bac/I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'c'
 
-/(abc|bac)/
+/(abc|bac)/I
 Capturing subpattern count = 1
 No options
 No first char
 Need char = 'c'
 
-/(abc|(c|dc))/
+/(abc|(c|dc))/I
 Capturing subpattern count = 2
 No options
 No first char
 Need char = 'c'
 
-/(abc|(d|de)c)/
+/(abc|(d|de)c)/I
 Capturing subpattern count = 2
 No options
 No first char
 Need char = 'c'
 
-/a*/
+/a*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/a+/
+/a+/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/(baa|a+)/
+/(baa|a+)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 No first char
 Need char = 'a'
 
-/a{0,3}/
+/a{0,3}/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/baa{3,}/
+/baa{3,}/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'b'
 Need char = 'a'
 
-/"([^\\"]+|\\.)*"/
+/"([^\\"]+|\\.)*"/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 First char = '"'
 Need char = '"'
 
-/(abc|ab[cd])/
+/(abc|ab[cd])/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/(a|.)/
+/(a|.)/I
 Capturing subpattern count = 1
 No options
 No first char
 No need char
 
-/a|ba|\w/
+/a|ba|\w/I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/abc(?=pqr)/
+/abc(?=pqr)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'r'
 
-/...(?<=abc)/
+/...(?<=abc)/I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/abc(?!pqr)/
+/abc(?!pqr)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/ab./
+/ab./I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab[xyz]/
+/ab[xyz]/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/abc*/
+/abc*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab.c*/
+/ab.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a.c*/
+/a.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/.c*/
+/.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/ac*/
+/ac*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/(a.c*|b.c*)/
+/(a.c*|b.c*)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 No first char
 No need char
 
-/a.c*|aba/
+/a.c*|aba/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/.+a/
+/.+a/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 Need char = 'a'
 
-/(?=abcda)a.*/
+/(?=abcda)a.*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'a'
 
-/(?=a)a.*/
+/(?=a)a.*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/a(b)*/
+/a(b)*/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/a\d*/
+/a\d*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/ab\d*/
+/ab\d*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a(\d)*/
+/a(\d)*/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/abcde{0,0}/
+/abcde{0,0}/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'd'
 
-/ab\d+/
+/ab\d+/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a(?(1)b)/
+/a(?(1)b)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 No need char
 
-/a(?(1)bag|big)/
+/a(?(1)bag|big)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'g'
 
-/a(?(1)bag|big)*/
+/a(?(1)bag|big)*/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 No need char
 
-/a(?(1)bag|big)+/
+/a(?(1)bag|big)+/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'g'
 
-/a(?(1)b..|b..)/
+/a(?(1)b..|b..)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab\d{0}e/
+/ab\d{0}e/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'e'
 
-/a?b?/
+/a?b?/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -1655,10 +1650,10 @@
  0: 
     *** Failers
  0: 
-    \N     
+    \N
 No match
-    
-/|-/
+
+/|-/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -1671,10 +1666,10 @@
  0: -
     *** Failers
  0: 
-    \Nabc     
+    \Nabc
 No match
 
-/a*(b+)(z)(z)/P
+/a*(b+)(z)(z)/IP
     aaaabbbbzzzz
  0: aaaabbbbzz
  1: bbbb
@@ -1700,8 +1695,8 @@
  1: bbbb
  2: z
  3: z
-    
-/^.?abcd/S 
+
+/^.?abcd/IS
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1715,7 +1710,7 @@
   (?R)          # Recurse - i.e. nested bracketed string
   )*            # Zero or more contents
   \)            # Closing )
-  /x
+  /Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -1727,30 +1722,30 @@
  0: (abcd)
     xyz(abcd)
  0: (abcd)
-    (ab(xy)cd)pqr 
+    (ab(xy)cd)pqr
  0: (ab(xy)cd)
-    (ab(xycd)pqr 
+    (ab(xycd)pqr
  0: (xycd)
-    () abc () 
+    () abc ()
  0: ()
     12(abcde(fsh)xyz(foo(bar))lmno)89
  0: (abcde(fsh)xyz(foo(bar))lmno)
     *** Failers
 No match
-    abcd 
+    abcd
 No match
     abcd)
 No match
-    (abcd  
+    (abcd
 No match
 
-/\(  ( (?>[^()]+) | (?R) )* \) /xg
+/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 Capturing subpattern count = 1
 Partial matching not supported
 Options: extended
 First char = '('
 Need char = ')'
-    (ab(xy)cd)pqr 
+    (ab(xy)cd)pqr
  0: (ab(xy)cd)
  1: cd
     1(abcd)(x(y)z)pqr
@@ -1759,7 +1754,7 @@
  0: (x(y)z)
  1: z
 
-/\(  (?: (?>[^()]+) | (?R) ) \) /x
+/\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -1769,16 +1764,16 @@
  0: (abcd)
     (ab(xy)cd)
  0: (xy)
-    (a(b(c)d)e) 
+    (a(b(c)d)e)
  0: (c)
-    ((ab)) 
+    ((ab))
  0: ((ab))
     *** Failers
 No match
-    ()   
+    ()
 No match
 
-/\(  (?: (?>[^()]+) | (?R) )? \) /x
+/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -1789,7 +1784,7 @@
     12(abcde(fsh)xyz(foo(bar))lmno)89
  0: (fsh)
 
-/\(  ( (?>[^()]+) | (?R) )* \) /x
+/\(  ( (?>[^()]+) | (?R) )* \) /Ix
 Capturing subpattern count = 1
 Partial matching not supported
 Options: extended
@@ -1799,7 +1794,7 @@
  0: (ab(xy)cd)
  1: cd
 
-/\( ( ( (?>[^()]+) | (?R) )* ) \) /x
+/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 Capturing subpattern count = 2
 Partial matching not supported
 Options: extended
@@ -1810,7 +1805,7 @@
  1: ab(xy)cd
  2: cd
 
-/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x
+/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 Capturing subpattern count = 3
 Partial matching not supported
 Options: extended
@@ -1827,7 +1822,7 @@
  2: ab(xy)cd
  3: cd
 
-/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x
+/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 Capturing subpattern count = 3
 Partial matching not supported
 Options: extended
@@ -1844,7 +1839,7 @@
  2: 123
  3: cd
 
-/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
+/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 Capturing subpattern count = 11
 Partial matching not supported
 Options: extended
@@ -1864,7 +1859,7 @@
 10: ab(xy)cd
 11: cd
 
-/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x
+/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 Capturing subpattern count = 3
 Partial matching not supported
 Options: extended
@@ -1876,7 +1871,7 @@
  2: 123
  3: <unset>
 
-/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
+/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 Capturing subpattern count = 3
 Partial matching not supported
 Options: extended
@@ -1893,311 +1888,339 @@
  2: ij
  3: (cd(ef)gh)
 
-/^[[:alnum:]]/D
+/^[[:alnum:]]/DZ
+------------------------------------------------------------------
+        Bra
+        ^
+        [0-9A-Za-z]
+        Ket
+        End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/^[[:^alnum:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [0-9A-Za-z]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-/:-@[-`{-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:^alnum:]]/D
+/^[[:alpha:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-/:-@[-`{-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [A-Za-z]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:alpha:]]/D
+/^[[:^alpha:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [A-Za-z]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-@[-`{-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:^alpha:]]/D
+/[_[:alpha:]]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: 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 Z 
+  _ 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 z 
+
+/^[[:ascii:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-@[-`{-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-\x7f]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
-             
-/^[[:ascii:]]/D
+
+/^[[:^ascii:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-\x7f]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x80-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:^ascii:]]/D
+/^[[:blank:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x80-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x09 ]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:blank:]]/D
+/^[[:^blank:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x09 ]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-\x08\x0a-\x1f!-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:cntrl:]]/D
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+Capturing subpattern count = 0
+Contains explicit CR or LF match
+No options
+No first char
+No need char
+Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
+
+/^[[:cntrl:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-\x1f\x7f]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-\x1f\x7f]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:digit:]]/D
+/^[[:digit:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [0-9]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [0-9]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:graph:]]/D
+/^[[:graph:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [!-~]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [!-~]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:lower:]]/D
+/^[[:lower:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [a-z]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [a-z]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:print:]]/D
+/^[[:print:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [ -~]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [ -~]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:punct:]]/D
+/^[[:punct:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [!-/:-@[-`{-~]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [!-/:-@[-`{-~]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:space:]]/D
+/^[[:space:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x09-\x0d ]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x09-\x0d ]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:upper:]]/D
+/^[[:upper:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [A-Z]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [A-Z]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:xdigit:]]/D
+/^[[:xdigit:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [0-9A-Fa-f]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [0-9A-Fa-f]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:word:]]/D
+/^[[:word:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [0-9A-Z_a-z]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [0-9A-Z_a-z]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:^cntrl:]]/D
+/^[[:^cntrl:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [ -~\x80-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [ -~\x80-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[12[:^digit:]]/D
+/^[12[:^digit:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-/12:-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-/12:-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/^[[:^blank:]]/D
+/^[[:^blank:]]/DZ
 ------------------------------------------------------------------
-  0  37 Bra 0
-  3     ^
-  4     [\x00-\x08\x0a-\x1f!-\xff]
- 37  37 Ket
- 40     End
+        Bra
+        ^
+        [\x00-\x08\x0a-\x1f!-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/[01[:alpha:]%]/D
+/[01[:alpha:]%]/DZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [%01A-Za-z]
- 36  36 Ket
- 39     End
+        Bra
+        [%01A-Za-z]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/[[.ch.]]/
+/[[.ch.]]/I
 Failed: POSIX collating elements are not supported at offset 1
 
-/[[=ch=]]/
+/[[=ch=]]/I
 Failed: POSIX collating elements are not supported at offset 1
 
-/[[:rhubarb:]]/
+/[[:rhubarb:]]/I
 Failed: unknown POSIX class name at offset 3
 
-/[[:upper:]]/i
+/[[:upper:]]/Ii
 Capturing subpattern count = 0
 Options: caseless
 No first char
 No need char
     A
  0: A
-    a 
+    a
  0: a
-    
-/[[:lower:]]/i
+
+/[[:lower:]]/Ii
 Capturing subpattern count = 0
 Options: caseless
 No first char
 No need char
     A
  0: A
-    a 
+    a
  0: a
 
-/((?-i)[[:lower:]])[[:lower:]]/i
+/((?-i)[[:lower:]])[[:lower:]]/Ii
 Capturing subpattern count = 1
 Options: caseless
-Case state changes
 No first char
 No need char
     ab
@@ -2211,22 +2234,22 @@
  1: a
     Ab
 No match
-    AB        
+    AB
 No match
 
-/[\200-\410]/
+/[\200-\110]/I
 Failed: range out of order in character class at offset 9
 
-/^(?(0)f|b)oo/
-Failed: invalid condition (?(0) at offset 5
+/^(?(0)f|b)oo/I
+Failed: invalid condition (?(0) at offset 6
 
-/This one's here because of the large output vector needed/
+/This one's here because of the large output vector needed/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 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)/
+/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))
 (\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(
 \d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\
 d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
 Capturing subpattern count = 271
 Max back reference = 270
 Partial matching not supported
@@ -2507,13 +2530,13 @@
 270: ABC
 271: ABC
 
-/This one's here because Perl does this differently and PCRE can't at present/
+/This one's here because Perl does this differently and PCRE can't at present/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 Need char = 't'
 
-/(main(O)?)+/
+/(main(O)?)+/I
 Capturing subpattern count = 2
 No options
 First char = 'm'
@@ -2525,14 +2548,14 @@
  0: mainOmain
  1: main
  2: O
-    
-/These are all cases where Perl does it differently (nested captures)/
+
+/These are all cases where Perl does it differently (nested captures)/I
 Capturing subpattern count = 1
 No options
 First char = 'T'
 Need char = 's'
 
-/^(a(b)?)+$/
+/^(a(b)?)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -2541,227 +2564,223 @@
  0: aba
  1: a
  2: b
-   
-/^(aa(bb)?)+$/
+
+/^(aa(bb)?)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: aa
  2: bb
-    
-/^(aa|aa(bb))+$/
+
+/^(aa|aa(bb))+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
 No need char
-    aabbaa 
+    aabbaa
  0: aabbaa
  1: aa
  2: bb
-    
-/^(aa(bb)??)+$/
+
+/^(aa(bb)??)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: aa
  2: bb
-    
-/^(?:aa(bb)?)+$/
+
+/^(?:aa(bb)?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: bb
-    
-/^(aa(b(b))?)+$/
+
+/^(aa(b(b))?)+$/I
 Capturing subpattern count = 3
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: aa
  2: bb
  3: b
 
-/^(?:aa(b(b))?)+$/
+/^(?:aa(b(b))?)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: bb
  2: b
 
-/^(?:aa(b(?:b))?)+$/
+/^(?:aa(b(?:b))?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: bb
 
-/^(?:aa(bb(?:b))?)+$/
+/^(?:aa(bb(?:b))?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbbaa    
+    aabbbaa
  0: aabbbaa
  1: bbb
-    
-/^(?:aa(b(?:bb))?)+$/
+
+/^(?:aa(b(?:bb))?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbbaa    
+    aabbbaa
  0: aabbbaa
  1: bbb
 
-/^(?:aa(?:b(b))?)+$/
+/^(?:aa(?:b(b))?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbaa    
+    aabbaa
  0: aabbaa
  1: b
 
-/^(?:aa(?:b(bb))?)+$/
+/^(?:aa(?:b(bb))?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
 No need char
-    aabbbaa    
+    aabbbaa
  0: aabbbaa
  1: bb
 
-/^(aa(b(bb))?)+$/
+/^(aa(b(bb))?)+$/I
 Capturing subpattern count = 3
 Options: anchored
 No first char
 No need char
-    aabbbaa    
+    aabbbaa
  0: aabbbaa
  1: aa
  2: bbb
  3: bb
 
-/^(aa(bb(bb))?)+$/
+/^(aa(bb(bb))?)+$/I
 Capturing subpattern count = 3
 Options: anchored
 No first char
 No need char
-    aabbbbaa    
+    aabbbbaa
  0: aabbbbaa
  1: aa
  2: bbbb
  3: bb
 
-/--------------------------------------------------------------------/ 
+/--------------------------------------------------------------------/I
 Capturing subpattern count = 0
 No options
 First char = '-'
 Need char = '-'
-    
-/#/xMD
-Memory allocation (code space): 7
+
+/#/IxDZ
 ------------------------------------------------------------------
-  0   3 Bra 0
-  3   3 Ket
-  6     End
+        Bra
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: extended
 No first char
 No need char
 
-/a#/xMD
-Memory allocation (code space): 9
+/a#/IxDZ
 ------------------------------------------------------------------
-  0   5 Bra 0
-  3     a
-  5   5 Ket
-  8     End
+        Bra
+        a
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: extended
 First char = 'a'
 No need char
 
-/[\s]/D
+/[\s]/DZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x09\x0a\x0c\x0d ]
- 36  36 Ket
- 39     End
+        Bra
+        [\x09\x0a\x0c\x0d ]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/[\S]/D
+/[\S]/DZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x00-\x08\x0b\x0e-\x1f!-\xff]
- 36  36 Ket
- 39     End
+        Bra
+        [\x00-\x08\x0b\x0e-\x1f!-\xff]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/a(?i)b/D
+/a(?i)b/DZ
 ------------------------------------------------------------------
-  0   9 Bra 0
-  3     a
-  5  01 Opt
-  7  NC b
-  9   9 Ket
- 12     End
+        Bra
+        a
+     01 Opt
+     NC b
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
-Case state changes
 First char = 'a'
 Need char = 'b' (caseless)
     ab
  0: ab
     aB
  0: aB
-    *** Failers 
+    *** Failers
 No match
-    AB  
+    AB
 No match
 
-/(a(?i)b)/D
+/(a(?i)b)/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        CBra 1
+        a
+     01 Opt
+     NC b
+        Ket
+     00 Opt
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
-Case state changes
 First char = 'a'
 Need char = 'b' (caseless)
     ab
@@ -2770,17 +2789,17 @@
     aB
  0: aB
  1: aB
-    *** Failers 
+    *** Failers
 No match
-    AB  
+    AB
 No match
-    
-/   (?i)abc/xD
+
+/   (?i)abc/IxDZ
 ------------------------------------------------------------------
-  0   9 Bra 0
-  3  NC abc
-  9   9 Ket
- 12     End
+        Bra
+     NC abc
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: caseless extended
@@ -2788,47 +2807,47 @@
 Need char = 'c' (caseless)
 
 /#this is a comment
-  (?i)abc/xD
+  (?i)abc/IxDZ
 ------------------------------------------------------------------
-  0   9 Bra 0
-  3  NC abc
-  9   9 Ket
- 12     End
+        Bra
+     NC abc
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: caseless extended
 First char = 'a' (caseless)
 Need char = 'c' (caseless)
 
-/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
+/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 ------------------------------------------------------------------
-  0 603 Bra 0
-  3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-603 603 Ket
-606     End
+        Bra
+        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 First char = '1'
 Need char = '0'
 
-/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
+/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 ------------------------------------------------------------------
-  0 603 Bra 0
-  3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-603 603 Ket
-606     End
+        Bra
+        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 First char = '1'
 Need char = '0'
 
-/\Q\E/D
+/\Q\E/DZ
 ------------------------------------------------------------------
-  0   3 Bra 0
-  3   3 Ket
-  6     End
+        Bra
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -2837,36 +2856,36 @@
     \
  0: 
 
-/\Q\Ex/D
+/\Q\Ex/DZ
 ------------------------------------------------------------------
-  0   5 Bra 0
-  3     x
-  5   5 Ket
-  8     End
+        Bra
+        x
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 First char = 'x'
 No need char
 
-/ \Q\E/D
+/ \Q\E/DZ
 ------------------------------------------------------------------
-  0   5 Bra 0
-  3      
-  5   5 Ket
-  8     End
+        Bra
+         
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 First char = ' '
 No need char
 
-/a\Q\E/D
+/a\Q\E/DZ
 ------------------------------------------------------------------
-  0   5 Bra 0
-  3     a
-  5   5 Ket
-  8     End
+        Bra
+        a
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -2876,15 +2895,15 @@
  0: a
   bca
  0: a
-  bac  
+  bac
  0: a
 
-/a\Q\Eb/D
+/a\Q\Eb/DZ
 ------------------------------------------------------------------
-  0   7 Bra 0
-  3     ab
-  7   7 Ket
- 10     End
+        Bra
+        ab
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -2893,27 +2912,25 @@
   abc
  0: ab
 
-/\Q\Eabc/D
+/\Q\Eabc/DZ
 ------------------------------------------------------------------
-  0   9 Bra 0
-  3     abc
-  9   9 Ket
- 12     End
+        Bra
+        abc
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/x*+\w/D
+/x*+\w/DZ
 ------------------------------------------------------------------
-  0  12 Bra 0
-  3   5 Once
-  6     x*
-  8   5 Ket
- 11     \w
- 12  12 Ket
- 15     End
+        Bra
+        x*+
+        \w
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -2924,29 +2941,25 @@
  0: F
     xxxxx
 No match
-    
-/x?+/D
+
+/x?+/DZ
 ------------------------------------------------------------------
-  0  11 Bra 0
-  3   5 Once
-  6     x?
-  8   5 Ket
- 11  11 Ket
- 14     End
+        Bra
+        x?+
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/x++/D
+/x++/DZ
 ------------------------------------------------------------------
-  0  11 Bra 0
-  3   5 Once
-  6     x+
-  8   5 Ket
- 11  11 Ket
- 14     End
+        Bra
+        x++
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -2954,15 +2967,15 @@
 First char = 'x'
 No need char
 
-/x{1,3}+/D 
+/x{1,3}+/DZ
 ------------------------------------------------------------------
-  0  15 Bra 0
-  3   9 Once
-  6     x
-  8     x{,2}
- 12   9 Ket
- 15  15 Ket
- 18     End
+        Bra
+        Once
+        x
+        x{0,2}
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -2970,24 +2983,24 @@
 First char = 'x'
 No need char
 
-/(x)*+/D
+/(x)*+/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        Once
+        Brazero
+        CBra 1
+        x
+        KetRmax
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
 No first char
 No need char
 
-/^(\w++|\s++)*$/
+/^(\w++|\s++)*$/I
 Capturing subpattern count = 1
 Partial matching not supported
 Options: anchored
@@ -3000,8 +3013,8 @@
 No match
     this is not a line with only words and spaces!
 No match
-    
-/(\d++)(\w)/
+
+/(\d++)(\w)/I
 Capturing subpattern count = 2
 Partial matching not supported
 No options
@@ -3013,10 +3026,10 @@
  2: a
     *** Failers
 No match
-    12345+ 
+    12345+
 No match
 
-/a++b/
+/a++b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -3025,7 +3038,7 @@
     aaab
  0: aaab
 
-/(a++b)/
+/(a++b)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3035,7 +3048,7 @@
  0: aaab
  1: aaab
 
-/(a++)b/
+/(a++)b/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3045,7 +3058,7 @@
  0: aaab
  1: aaa
 
-/([^()]++|\([^()]*\))+/
+/([^()]++|\([^()]*\))+/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3054,8 +3067,8 @@
     ((abc(ade)ufh()()x
  0: abc(ade)ufh()()x
  1: x
-    
-/\(([^()]++|\([^()]+\))+\)/ 
+
+/\(([^()]++|\([^()]+\))+\)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3069,57 +3082,55 @@
  1: xyz
     *** Failers
 No match
-    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
+    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 No match
 
-/(abc){1,3}+/D
+/(abc){1,3}+/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        Once
+        CBra 1
+        abc
+        Ket
+        Brazero
+        Bra
+        CBra 1
+        abc
+        Ket
+        Brazero
+        CBra 1
+        abc
+        Ket
+        Ket
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
 First char = 'a'
 Need char = 'c'
 
-/a+?+/
+/a+?+/I
 Failed: nothing to repeat at offset 3
 
-/a{2,3}?+b/
+/a{2,3}?+b/I
 Failed: nothing to repeat at offset 7
 
-/(?U)a+?+/
+/(?U)a+?+/I
 Failed: nothing to repeat at offset 7
 
-/a{2,3}?+b/U
+/a{2,3}?+b/IU
 Failed: nothing to repeat at offset 7
 
-/x(?U)a++b/D
+/x(?U)a++b/DZ
 ------------------------------------------------------------------
-  0  15 Bra 0
-  3     x
-  5   5 Once
-  8     a+
- 10   5 Ket
- 13     b
- 15  15 Ket
- 18     End
+        Bra
+        x
+        a++
+        b
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -3129,16 +3140,14 @@
     xaaaab
  0: xaaaab
 
-/(?U)xa++b/D
+/(?U)xa++b/DZ
 ------------------------------------------------------------------
-  0  15 Bra 0
-  3     x
-  5   5 Once
-  8     a+
- 10   5 Ket
- 13     b
- 15  15 Ket
- 18     End
+        Bra
+        x
+        a++
+        b
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -3148,26 +3157,26 @@
     xaaaab
  0: xaaaab
 
-/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        ^
+        CBra 1
+        CBra 2
+        a+
+        Ket
+        CBra 3
+        [ab]+?
+        Ket
+        CBra 4
+        [bc]+
+        Ket
+        CBra 5
+        \w*
+        Ket
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 5
 Partial matching not supported
@@ -3175,15 +3184,15 @@
 No first char
 No need char
 
-/^x(?U)a+b/D
+/^x(?U)a+b/DZ
 ------------------------------------------------------------------
-  0  10 Bra 0
-  3     ^
-  4     x
-  6     a+?
-  8     b
- 10  10 Ket
- 13     End
+        Bra
+        ^
+        x
+        a++
+        b
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -3191,17 +3200,17 @@
 No first char
 Need char = 'b'
 
-/^x(?U)(a+)b/D
+/^x(?U)(a+)b/DZ
 ------------------------------------------------------------------
-  0  16 Bra 0
-  3     ^
-  4     x
-  6   5 Bra 1
-  9     a+?
- 11   5 Ket
- 14     b
- 16  16 Ket
- 19     End
+        Bra
+        ^
+        x
+        CBra 1
+        a+?
+        Ket
+        b
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
@@ -3209,79 +3218,76 @@
 No first char
 Need char = 'b'
 
-/[.x.]/
+/[.x.]/I
 Failed: POSIX collating elements are not supported at offset 0
 
-/[=x=]/
+/[=x=]/I
 Failed: POSIX collating elements are not supported at offset 0
 
-/[:x:]/
+/[:x:]/I
 Failed: POSIX named classes are supported only within a class at offset 0
 
-/\l/
+/\l/I
 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
 
-/\L/
+/\L/I
 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
 
-/\N{name}/
+/\N{name}/I
 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
 
-/\u/
+/\u/I
 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
 
-/\U/
+/\U/I
 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
 
-/[/
+/[/I
 Failed: missing terminating ] for character class at offset 1
 
-/[a-/
+/[a-/I
 Failed: missing terminating ] for character class at offset 3
 
-/[[:space:]/
+/[[:space:]/I
 Failed: missing terminating ] for character class at offset 10
 
-/[\s]/DM
-Memory allocation (code space): 40
+/[\s]/IDZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x09\x0a\x0c\x0d ]
- 36  36 Ket
- 39     End
+        Bra
+        [\x09\x0a\x0c\x0d ]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/[[:space:]]/DM
-Memory allocation (code space): 40
+/[[:space:]]/IDZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x09-\x0d ]
- 36  36 Ket
- 39     End
+        Bra
+        [\x09-\x0d ]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/[[:space:]abcde]/DM
-Memory allocation (code space): 40
+/[[:space:]abcde]/IDZ
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x09-\x0d a-e]
- 36  36 Ket
- 39     End
+        Bra
+        [\x09-\x0d a-e]
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
+/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -3295,37 +3301,35 @@
  0: <abc <123> hij>
     <abc <def> hij>
  0: <def>
-    <abc<>def> 
+    <abc<>def>
  0: <abc<>def>
-    <abc<>      
+    <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
+|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
 ------------------------------------------------------------------
-  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
+        Bra
+        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
+        Ket
+        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
+|\$\<\.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
 ------------------------------------------------------------------
-  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
+        Bra
+        $<.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
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -3344,9 +3348,9 @@
 Capturing subpattern count = 1
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
-    
+
 /(.*)\d+\1/Is
 Capturing subpattern count = 1
 Max back reference = 1
@@ -3367,7 +3371,7 @@
 Max back reference = 2
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'z'
 
 /((.*))\d+\1/I
@@ -3381,7 +3385,7 @@
  0: bc123bc
  1: bc
  2: bc
-    
+
 /a[b]/I
 Capturing subpattern count = 0
 No options
@@ -3395,7 +3399,7 @@
 First char = 'a'
 No need char
 
-/(?=abc).xyz/iI
+/(?=abc).xyz/IiI
 Capturing subpattern count = 0
 Options: caseless
 First char = 'a' (caseless)
@@ -3404,7 +3408,6 @@
 /(?=abc)(?i).xyz/I
 Capturing subpattern count = 0
 No options
-Case state changes
 First char = 'a'
 Need char = 'z' (caseless)
 
@@ -3524,18 +3527,18 @@
 First char = 'a'
 Need char = 'b'
 
-/^a/mI
+/^a/Im
 Capturing subpattern count = 0
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'a'
   abcde
  0: a
-  xy\nabc 
+  xy\nabc
  0: a
-  *** Failers 
+  *** Failers
 No match
-  xyabc 
+  xyabc
 No match
 
 /c|abc/I
@@ -3554,12 +3557,11 @@
 /[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/
+/abc(?C)def/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -3568,7 +3570,7 @@
 --->abcdef
   0 ^  ^       d
  0: abcdef
-    1234abcdef 
+    1234abcdef
 --->1234abcdef
   0     ^  ^       d
  0: abcdef
@@ -3576,12 +3578,12 @@
 No match
     abcxyz
 No match
-    abcxyzf   
+    abcxyzf
 --->abcxyzf
   0 ^  ^        d
 No match
 
-/abc(?C)de(?C1)f/
+/abc(?C)de(?C1)f/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -3591,8 +3593,8 @@
   0    ^  ^       d
   1    ^    ^     f
  0: abcdef
-    
-/(?C1)\dabc(?C2)def/ 
+
+/(?C1)\dabc(?C2)def/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -3607,7 +3609,7 @@
  0: 4abcdef
     *** Failers
 No match
-    abcdef 
+    abcdef
 --->abcdef
   1 ^          \d
   1  ^         \d
@@ -3616,23 +3618,23 @@
   1     ^      \d
   1      ^     \d
 No match
-    
-/(?C255)ab/
+
+/(?C255)ab/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/(?C256)ab/
+/(?C256)ab/I
 Failed: number after (?C is > 255 at offset 6
 
-/(?Cab)xx/ 
+/(?Cab)xx/I
 Failed: closing ) for (?C expected at offset 3
 
-/(?C12vr)x/
+/(?C12vr)x/I
 Failed: closing ) for (?C expected at offset 5
 
-/abc(?C)def/
+/abc(?C)def/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -3644,7 +3646,7 @@
   0         ^  ^       d
  0: abcdef
 
-/(abc)(?C)de(?C1)f/
+/(abc)(?C)de(?C1)f/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
@@ -3655,7 +3657,7 @@
   1    ^    ^     f
  0: abcdef
  1: abc
-    123abcdef\C+ 
+    123abcdef\C+
 Callout 0: last capture = 1
  0: <unset>
  1: abc
@@ -3668,18 +3670,18 @@
        ^    ^     f
  0: abcdef
  1: abc
-    123abcdef\C- 
+    123abcdef\C-
  0: abcdef
  1: abc
     *** Failers
 No match
-    123abcdef\C!1 
+    123abcdef\C!1
 --->123abcdef
   0    ^  ^       d
   1    ^    ^     f
 No match
-    
-/(?C0)(abc(?C1))*/
+
+/(?C0)(abc(?C1))*/I
 Capturing subpattern count = 1
 No options
 No first char
@@ -3692,7 +3694,7 @@
   1 ^        ^    )
  0: abcabcabc
  1: abc
-    abcabc\C!1!3   
+    abcabc\C!1!3
 --->abcabc
   0 ^          (abc(?C1))*
   1 ^  ^       )
@@ -3703,7 +3705,7 @@
 --->*** Failers
   0 ^               (abc(?C1))*
  0: 
-    abcabcabc\C!1!3   
+    abcabcabc\C!1!3
 --->abcabcabc
   0 ^             (abc(?C1))*
   1 ^  ^          )
@@ -3712,7 +3714,7 @@
  0: abcabc
  1: abc
 
-/(\d{3}(?C))*/
+/(\d{3}(?C))*/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3737,7 +3739,7 @@
     ^     ^    )
  0: 123456
  1: 456
-    123456789\C+  
+    123456789\C+
 Callout 0: last capture = -1
  0: <unset>
 --->123456789
@@ -3755,7 +3757,7 @@
  0: 123456789
  1: 789
 
-/((xyz)(?C)p|(?C1)xyzabc)/
+/((xyz)(?C)p|(?C1)xyzabc)/I
 Capturing subpattern count = 2
 No options
 First char = 'x'
@@ -3774,7 +3776,7 @@
  0: xyzabc
  1: xyzabc
 
-/(X)((xyz)(?C)p|(?C1)xyzabc)/
+/(X)((xyz)(?C)p|(?C1)xyzabc)/I
 Capturing subpattern count = 3
 No options
 First char = 'X'
@@ -3796,7 +3798,7 @@
  1: X
  2: xyzabc
 
-/(?=(abc))(?C)abcdef/
+/(?=(abc))(?C)abcdef/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
@@ -3809,13 +3811,13 @@
     ^          a
  0: abcdef
  1: abc
-    
-/(?!(abc)(?C1)d)(?C2)abcxyz/
+
+/(?!(abc)(?C1)d)(?C2)abcxyz/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 Need char = 'z'
-    abcxyz\C+ 
+    abcxyz\C+
 Callout 1: last capture = 1
  0: <unset>
  1: abc
@@ -3827,7 +3829,7 @@
     ^          a
  0: abcxyz
 
-/(?<=(abc)(?C))xyz/
+/(?<=(abc)(?C))xyz/I
 Capturing subpattern count = 1
 No options
 First char = 'x'
@@ -3840,36 +3842,88 @@
        ^       )
  0: xyz
  1: abc
-   
-/(?C)abc/ 
+
+/a(b+)(c*)(?C1)/I
+Capturing subpattern count = 2
+Partial matching not supported
+No options
+First char = 'a'
+Need char = 'b'
+    abbbbbccc\C*1
+--->abbbbbccc
+  1 ^        ^    
+Callout data = 1
+  1 ^       ^     
+Callout data = 1
+  1 ^      ^      
+Callout data = 1
+  1 ^     ^       
+Callout data = 1
+  1 ^    ^        
+Callout data = 1
+  1 ^   ^         
+Callout data = 1
+  1 ^  ^          
+Callout data = 1
+  1 ^ ^           
+Callout data = 1
+No match
+
+/a(b+?)(c*?)(?C1)/I
+Capturing subpattern count = 2
+Partial matching not supported
+No options
+First char = 'a'
+Need char = 'b'
+    abbbbbccc\C*1
+--->abbbbbccc
+  1 ^ ^           
+Callout data = 1
+  1 ^  ^          
+Callout data = 1
+  1 ^   ^         
+Callout data = 1
+  1 ^    ^        
+Callout data = 1
+  1 ^     ^       
+Callout data = 1
+  1 ^      ^      
+Callout data = 1
+  1 ^       ^     
+Callout data = 1
+  1 ^        ^    
+Callout data = 1
+No match
+
+/(?C)abc/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/(?C)^abc/
+/(?C)^abc/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
 No need char
 
-/(?C)a|b/S
+/(?C)a|b/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b 
 
-/(?R)/
+/(?R)/I
 Failed: recursive call could loop indefinitely at offset 3
 
-/(a|(?R))/
+/(a|(?R))/I
 Failed: recursive call could loop indefinitely at offset 6
 
-/(ab|(bc|(de|(?R))))/
+/(ab|(bc|(de|(?R))))/I
 Failed: recursive call could loop indefinitely at offset 15
 
-/x(ab|(bc|(de|(?R))))/
+/x(ab|(bc|(de|(?R))))/I
 Capturing subpattern count = 3
 No options
 First char = 'x'
@@ -3898,16 +3952,16 @@
  3: xxab
     *** Failers
 No match
-    xyab   
+    xyab
 No match
 
-/(ab|(bc|(de|(?1))))/
+/(ab|(bc|(de|(?1))))/I
 Failed: recursive call could loop indefinitely at offset 15
 
-/x(ab|(bc|(de|(?1)x)x)x)/
+/x(ab|(bc|(de|(?1)x)x)x)/I
 Failed: recursive call could loop indefinitely at offset 16
 
-/^([^()]|\((?1)*\))*$/
+/^([^()]|\((?1)*\))*$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -3918,15 +3972,15 @@
     a(b)c
  0: a(b)c
  1: c
-    a(b(c))d  
+    a(b(c))d
  0: a(b(c))d
  1: d
     *** Failers)
 No match
-    a(b(c)d  
+    a(b(c)d
 No match
 
-/^>abc>([^()]|\((?1)*\))*<xyz<$/
+/^>abc>([^()]|\((?1)*\))*<xyz<$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -3941,41 +3995,43 @@
  0: >abc>(1(2)3)<xyz<
  1: (1(2)3)
 
-/(a(?1)b)/D
+/(a(?1)b)/DZ
 ------------------------------------------------------------------
-  0  16 Bra 0
-  3  10 Bra 1
-  6     a
-  8   3 Recurse
- 11     b
- 13  10 Ket
- 16  16 Ket
- 19     End
+        Bra
+        CBra 1
+        a
+        Once
+        Recurse
+        Ket
+        b
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
 First char = 'a'
 Need char = 'b'
 
-/(a(?1)+b)/D
+/(a(?1)+b)/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        CBra 1
+        a
+        Once
+        Recurse
+        KetRmax
+        b
+        Ket
+        Ket
+        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
+/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
 Capturing subpattern count = 4
 Max back reference = 4
 Partial matching not supported
@@ -3998,7 +4054,7 @@
  2: <unset>
  3: A man, a plan, a canal: Panama
  4: A
-    Able was I ere I saw Elba. 
+    Able was I ere I saw Elba.
  0: Able was I ere I saw Elba.
  1: <unset>
  2: <unset>
@@ -4006,10 +4062,10 @@
  4: A
     *** Failers
 No match
-    The quick brown fox  
+    The quick brown fox
 No match
-    
-/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
+
+/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 2
 Partial matching not supported
 Options: anchored
@@ -4029,8 +4085,8 @@
 No match
     ((2+2)*-3)-7)
 No match
-         
-/^(x(y|(?1){2})z)/
+
+/^(x(y|(?1){2})z)/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -4039,7 +4095,7 @@
  0: xyz
  1: xyz
  2: y
-    xxyzxyzz 
+    xxyzxyzz
  0: xxyzxyzz
  1: xxyzxyzz
  2: xyzxyz
@@ -4047,10 +4103,10 @@
 No match
     xxyzz
 No match
-    xxyzxyzxyzz   
+    xxyzxyzxyzz
 No match
 
-/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
+/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 Capturing subpattern count = 2
 Partial matching not supported
 Options: extended
@@ -4072,11 +4128,11 @@
  0: <def>
  1: <def>
  2: <def>
-    <abc<>def> 
+    <abc<>def>
  0: <abc<>def>
  1: <abc<>def>
  2: <abc<>def>
-    <abc<>      
+    <abc<>
  0: <>
  1: <>
  2: <>
@@ -4085,13 +4141,13 @@
     <abc
 No match
 
-/(?1)/
+/(?1)/I
 Failed: reference to non-existent subpattern at offset 3
 
-/((?2)(abc)/
-Failed: reference to non-existent subpattern at offset 4
+/((?2)(abc)/I
+Failed: missing ) at offset 10
 
-/^(abc)def(?1)/
+/^(abc)def(?1)/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -4100,7 +4156,7 @@
  0: abcdefabc
  1: abc
 
-/^(a|b|c)=(?1)+/
+/^(a|b|c)=(?1)+/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -4111,11 +4167,11 @@
     a=b
  0: a=b
  1: a
-    a=bc  
+    a=bc
  0: a=bc
  1: a
 
-/^(a|b|c)=((?1))+/
+/^(a|b|c)=((?1))+/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -4128,26 +4184,26 @@
  0: a=b
  1: a
  2: b
-    a=bc  
+    a=bc
  0: a=bc
  1: a
  2: c
 
-/a(?P<name1>b|c)d(?P<longername2>e)/D
+/a(?P<name1>b|c)d(?P<longername2>e)/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        a
+        CBra 1
+        b
+        Alt
+        c
+        Ket
+        d
+        CBra 2
+        e
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 2
 Named capturing subpatterns:
@@ -4160,28 +4216,28 @@
  0: abde
  1: b
  2: e
-    acde 
+    acde
  0: acde
  1: c
  2: e
 
-/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
+/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        Bra
+        a
+        CBra 1
+        c
+        CBra 2
+        d
+        Ket
+        Ket
+        Ket
+        CBra 3
+        a
+        Ket
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 3
 Named capturing subpatterns:
@@ -4192,21 +4248,23 @@
 First char = 'a'
 Need char = 'a'
 
-/(?P<a>a)...(?P=a)bbb(?P>a)d/D
+/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 ------------------------------------------------------------------
-  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
+        Bra
+        CBra 1
+        a
+        Ket
+        Any
+        Any
+        Any
+        \1
+        bbb
+        Once
+        Recurse
+        Ket
+        d
+        Ket
+        End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Max back reference = 1
@@ -4216,7 +4274,7 @@
 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
+/^\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
 Capturing subpattern count = 4
 Max back reference = 4
 Named capturing subpatterns:
@@ -4244,7 +4302,7 @@
  2: <unset>
  3: A man, a plan, a canal: Panama
  4: A

[... 4991 lines stripped ...]