/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 448 by ph10, Tue Sep 15 19:11:48 2009 UTC revision 937 by ph10, Sun Feb 26 15:58:56 2012 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
# Line 92  Failed: missing terminating ] for charac Line 102  Failed: missing terminating ] for charac
102  /(?X)[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
104    
105    /(?X)[\R]/
106    Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\X]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /[\B]/BZ
112    ------------------------------------------------------------------
113            Bra
114            B
115            Ket
116            End
117    ------------------------------------------------------------------
118    
119    /[\R]/BZ
120    ------------------------------------------------------------------
121            Bra
122            R
123            Ket
124            End
125    ------------------------------------------------------------------
126    
127    /[\X]/BZ
128    ------------------------------------------------------------------
129            Bra
130            X
131            Ket
132            End
133    ------------------------------------------------------------------
134    
135  /[z-a]/  /[z-a]/
136  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
137    
# Line 134  Capturing subpattern count = 0 Line 174  Capturing subpattern count = 0
174  No options  No options
175  No first char  No first char
176  No need char  No need char
177    Subject length lower bound = 3
178  Starting byte set: c d e  Starting byte set: c d e
179      this sentence eventually mentions a cat      this sentence eventually mentions a cat
180   0: cat   0: cat
# Line 145  Capturing subpattern count = 0 Line 186  Capturing subpattern count = 0
186  Options: caseless  Options: caseless
187  No first char  No first char
188  No need char  No need char
189    Subject length lower bound = 3
190  Starting byte set: C D E c d e  Starting byte set: C D E c d e
191      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
192   0: CAT   0: CAT
# Line 156  Capturing subpattern count = 0 Line 198  Capturing subpattern count = 0
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201    Subject length lower bound = 1
202  Starting byte set: a b c d  Starting byte set: a b c d
203    
204  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 163  Capturing subpattern count = 1 Line 206  Capturing subpattern count = 1
206  No options  No options
207  No first char  No first char
208  No need char  No need char
209    Subject length lower bound = 1
210  Starting byte 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
211    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
212    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 183  Capturing subpattern count = 1 Line 227  Capturing subpattern count = 1
227  No options  No options
228  No first char  No first char
229  No need char  No need char
230    Subject length lower bound = 1
231  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
232    
233  /(ab\2)/  /(ab\2)/
# Line 331  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
# Line 461  Capturing subpattern count = 0 Line 451  Capturing subpattern count = 0
451  No options  No options
452  First char = 'f'  First char = 'f'
453  Need char = 'o'  Need char = 'o'
454    Max lookbehind = 6
455      foo      foo
456   0: foo   0: foo
457      catfoo      catfoo
# Line 516  Capturing subpattern count = 0 Line 507  Capturing subpattern count = 0
507  No options  No options
508  No first char  No first char
509  No need char  No need char
510    Subject length lower bound = 1
511  Starting byte set: a b c d  Starting byte set: a b c d
512    
513  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 523  Capturing subpattern count = 0 Line 515  Capturing subpattern count = 0
515  Options: caseless  Options: caseless
516  No first char  No first char
517  No need char  No need char
518    Subject length lower bound = 1
519  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
520    
521  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 530  Capturing subpattern count = 1 Line 523  Capturing subpattern count = 1
523  Options: multiline  Options: multiline
524  No first char  No first char
525  No need char  No need char
526    Subject length lower bound = 1
527  Starting byte set: b c x y  Starting byte set: b c x y
528    
529  /(^a|^b)/Im  /(^a|^b)/Im
# Line 583  Need char = 'h' (caseless) Line 577  Need char = 'h' (caseless)
577  ------------------------------------------------------------------  ------------------------------------------------------------------
578          Bra          Bra
579          CBra 1          CBra 1
580       01 Opt       /i b
      NC b  
581          Ket          Ket
      00 Opt  
582          Ket          Ket
583          End          End
584  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 594  Capturing subpattern count = 1 Line 586  Capturing subpattern count = 1
586  No options  No options
587  First char = 'b' (caseless)  First char = 'b' (caseless)
588  No need char  No need char
589  Study returned NULL  Subject length lower bound = 1
590    No set of starting bytes
591    
592  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
593  Capturing subpattern count = 1  Capturing subpattern count = 1
594  No options  No options
595  No first char  No first char
596  No need char  No need char
597    Subject length lower bound = 1
598  Starting byte set: C a b c d  Starting byte set: C a b c d
599    
600  /a$/I  /a$/I
# Line 665  Capturing subpattern count = 0 Line 659  Capturing subpattern count = 0
659  No options  No options
660  No first char  No first char
661  No need char  No need char
662    Max lookbehind = 3
663    Subject length lower bound = 1
664  Starting byte set: a b  Starting byte set: a b
665    
666  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 672  Capturing subpattern count = 1 Line 668  Capturing subpattern count = 1
668  No options  No options
669  No first char  No first char
670  Need char = 'a'  Need char = 'a'
671    Max lookbehind = 3
672    Subject length lower bound = 5
673  Starting byte set: a o  Starting byte set: a o
674    
675  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 679  Capturing subpattern count = 0 Line 677  Capturing subpattern count = 0
677  No options  No options
678  No first char  No first char
679  No need char  No need char
680    Subject length lower bound = 1
681  Starting byte set: a b  Starting byte set: a b
682    
683  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 687  Contains explicit CR or LF match Line 686  Contains explicit CR or LF match
686  Options: multiline  Options: multiline
687  No first char  No first char
688  Need char = 'r'  Need char = 'r'
689    Max lookbehind = 4
690      foo\nbarbar      foo\nbarbar
691   0: bar   0: bar
692      ***Failers      ***Failers
# Line 704  Contains explicit CR or LF match Line 704  Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows newline  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707    Max lookbehind = 4
708      foo\nbarbar      foo\nbarbar
709   0: bar   0: bar
710      ***Failers      ***Failers
# Line 745  Capturing subpattern count = 0 Line 746  Capturing subpattern count = 0
746  No options  No options
747  First char = '-'  First char = '-'
748  Need char = 't'  Need char = 't'
749    Max lookbehind = 7
750      the bullock-cart      the bullock-cart
751   0: -cart   0: -cart
752      a donkey-cart race      a donkey-cart race
# Line 761  Capturing subpattern count = 0 Line 763  Capturing subpattern count = 0
763  No options  No options
764  No first char  No first char
765  No need char  No need char
766    Max lookbehind = 3
767    
768  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
769  Capturing subpattern count = 2  Capturing subpattern count = 2
770  No options  No options
771  First char at start or follows newline  First char at start or follows newline
772  No need char  No need char
773    Max lookbehind = 4
774      alphabetabcd      alphabetabcd
775   0: alphabetabcd   0: alphabetabcd
776   1: abcd   1: abcd
# Line 780  Capturing subpattern count = 0 Line 784  Capturing subpattern count = 0
784  No options  No options
785  First char = 'Z'  First char = 'Z'
786  Need char = 'Z'  Need char = 'Z'
787    Max lookbehind = 4
788      abxyZZ      abxyZZ
789   0: ZZ   0: ZZ
790      abXyZZ      abXyZZ
# Line 808  Capturing subpattern count = 1 Line 813  Capturing subpattern count = 1
813  No options  No options
814  First char = 'b'  First char = 'b'
815  Need char = 'r'  Need char = 'r'
816    Max lookbehind = 4
817      bar      bar
818   0: bar   0: bar
819      foobbar      foobbar
# Line 833  No match Line 839  No match
839      a      a
840  No match  No match
841    
842  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
843  Capturing subpattern count = 0  Capturing subpattern count = 0
844  No options  No options
845  First char = 'T'  First char = 'T'
# Line 845  Max back reference = 1 Line 851  Max back reference = 1
851  Options: anchored  Options: anchored
852  No first char  No first char
853  No need char  No need char
854        aaaa
855    No match
856      aaaaaa      aaaaaa
857   0: aaaaaa  No match
858   1: aa  
859    /Perl does not fail these two for the final subjects. Neither did PCRE until/
860    /release 8.01. The problem is in backtracking into a subpattern that contains/
861    No match
862    /a recursive reference to itself. PCRE has now made these into atomic patterns./
863    No match
864    
865    /^(xa|=?\1a){2}$/
866        xa=xaa
867     0: xa=xaa
868     1: =xaa
869        ** Failers
870    No match
871        xa=xaaa
872    No match
873    
874    /^(xa|=?\1a)+$/
875        xa=xaa
876     0: xa=xaa
877     1: =xaa
878        ** Failers
879    No match
880        xa=xaaa
881    No match
882    
883  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
884  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 954  Failed: numbers out of order in {} quant Line 985  Failed: numbers out of order in {} quant
985  /abc/\  /abc/\
986  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
987    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
988  /abc/\i  /abc/\i
989  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
990    
# Line 1072  No first char Line 1100  No first char
1100  No need char  No need char
1101      abc\00def\L\C0      abc\00def\L\C0
1102   0: abc\x00def   0: abc\x00def
1103   0C abc (7)   0C abc\x00def (7)
1104   0L abc   0L abc
1105    
1106  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1168  No need char Line 1196  No need char
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197          Bra          Bra
1198          Bra          Bra
      04 Opt  
1199          AllAny*          AllAny*
1200          X          X
1201          Alt          Alt
      04 Opt  
1202          ^          ^
1203          B          B
1204          Ket          Ket
      00 Opt  
1205          Ket          Ket
1206          End          End
1207  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1190  Capturing subpattern count = 0 Line 1215  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
1217  Need char = 's'  Need char = 's'
1218      Mississippi  Max lookbehind = 1
  0: iss  
  0+ issippi  
   
 /\Biss\B/I+P  
1219      Mississippi      Mississippi
1220   0: iss   0: iss
1221   0+ issippi   0+ issippi
# Line 1215  Capturing subpattern count = 0 Line 1236  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
1239    Max lookbehind = 1
1240      Mississippi      Mississippi
1241   0: iss   0: iss
1242   0+ issippi   0+ issippi
# Line 1224  Capturing subpattern count = 0 Line 1246  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
1248  Need char = 's'  Need char = 's'
1249    Max lookbehind = 1
1250      Mississippi      Mississippi
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
# Line 1239  Capturing subpattern count = 0 Line 1262  Capturing subpattern count = 0
1262  No options  No options
1263  First char = 'i'  First char = 'i'
1264  Need char = 's'  Need char = 's'
1265    Max lookbehind = 1
1266      Mississippi      Mississippi
1267   0: iss   0: iss
1268   0+ issippi   0+ issippi
# Line 1250  Capturing subpattern count = 0 Line 1274  Capturing subpattern count = 0
1274  No options  No options
1275  First char = 'i'  First char = 'i'
1276  Need char = 's'  Need char = 's'
1277    Max lookbehind = 1
1278      Mississippi      Mississippi
1279   0: iss   0: iss
1280   0+ issippi   0+ issippi
# Line 1328  Capturing subpattern count = 0 Line 1353  Capturing subpattern count = 0
1353  Contains explicit CR or LF match  Contains explicit CR or LF match
1354  Options: multiline  Options: multiline
1355  First char at start or follows newline  First char at start or follows newline
1356  Need char = 10  Need char = \x0a
1357      ab\nab\ncd      ab\nab\ncd
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
# Line 1430  Capturing subpattern count = 0 Line 1455  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    Max lookbehind = 3
1459    
1460  /abc(?!pqr)/I  /abc(?!pqr)/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1615  No need char Line 1641  No need char
1641      \Nabc      \Nabc
1642  No match  No match
1643    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1644  /^.?abcd/IS  /^.?abcd/IS
1645  Capturing subpattern count = 0  Capturing subpattern count = 0
1646  Options: anchored  Options: anchored
1647  No first char  No first char
1648  Need char = 'd'  Need char = 'd'
1649  Study returned NULL  Subject length lower bound = 4
1650    No set of starting bytes
1651    
1652  /\(             # ( at start  /\(             # ( at start
1653    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1879  Capturing subpattern count = 0 Line 1879  Capturing subpattern count = 0
1879  No options  No options
1880  No first char  No first char
1881  No need char  No need char
1882    Subject length lower bound = 1
1883  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  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
1884    _ 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
1885    
# Line 1940  Contains explicit CR or LF match Line 1941  Contains explicit CR or LF match
1941  No options  No options
1942  No first char  No first char
1943  No need char  No need char
1944    Subject length lower bound = 1
1945  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1946    
1947  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2682  No need char Line 2684  No need char
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685          Bra          Bra
2686          a          a
2687       01 Opt       /i b
      NC b  
2688          Ket          Ket
2689          End          End
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2705  No match Line 2706  No match
2706          Bra          Bra
2707          CBra 1          CBra 1
2708          a          a
2709       01 Opt       /i b
      NC b  
2710          Ket          Ket
      00 Opt  
2711          Ket          Ket
2712          End          End
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2730  No match Line 2729  No match
2729  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731          Bra          Bra
2732       NC abc       /i abc
2733          Ket          Ket
2734          End          End
2735  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2743  Need char = 'c' (caseless) Line 2742  Need char = 'c' (caseless)
2742    (?i)abc/IxDZ    (?i)abc/IxDZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744          Bra          Bra
2745       NC abc       /i abc
2746          Ket          Ket
2747          End          End
2748  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2916  No need char Line 2915  No need char
2915  /(x)*+/DZ  /(x)*+/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917          Bra          Bra
2918          Once          Braposzero
2919          Brazero          CBraPos 1
         CBra 1  
2920          x          x
2921          KetRmax          KetRpos
         Ket  
2922          Ket          Ket
2923          End          End
2924  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3146  Failed: POSIX collating elements are not Line 3143  Failed: POSIX collating elements are not
3143  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3144    
3145  /\l/I  /\l/I
3146  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3147    
3148  /\L/I  /\L/I
3149  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3150    
3151  /\N{name}/I  /\N{name}/I
3152  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3153    
3154  /\u/I  /\u/I
3155  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3156    
3157  /\U/I  /\U/I
3158  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3159    
3160  /[/I  /[/I
3161  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3239  Capturing subpattern count = 0 Line 3236  Capturing subpattern count = 0
3236  No options  No options
3237  First char = '8'  First char = '8'
3238  Need char = 'X'  Need char = 'X'
3239    Max lookbehind = 1
3240    
3241  |\$\<\.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  |\$\<\.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
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3252  Capturing subpattern count = 0 Line 3250  Capturing subpattern count = 0
3250  No options  No options
3251  First char = '$'  First char = '$'
3252  Need char = 'X'  Need char = 'X'
3253    Max lookbehind = 1
3254    
3255  /(.*)\d+\1/I  /(.*)\d+\1/I
3256  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3410  Capturing subpattern count = 0 Line 3409  Capturing subpattern count = 0
3409  No options  No options
3410  No first char  No first char
3411  No need char  No need char
3412    Subject length lower bound = 1
3413  Starting byte set: a b  Starting byte set: a b
3414    
3415  /[^a]/I  /[^a]/I
# Line 3429  Capturing subpattern count = 0 Line 3429  Capturing subpattern count = 0
3429  No options  No options
3430  No first char  No first char
3431  Need char = '6'  Need char = '6'
3432    Subject length lower bound = 4
3433  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3434    
3435  /a^b/I  /a^b/I
# Line 3462  Capturing subpattern count = 0 Line 3463  Capturing subpattern count = 0
3463  Options: caseless  Options: caseless
3464  No first char  No first char
3465  No need char  No need char
3466    Subject length lower bound = 1
3467  Starting byte set: A B a b  Starting byte set: A B a b
3468    
3469  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3469  Capturing subpattern count = 0 Line 3471  Capturing subpattern count = 0
3471  No options  No options
3472  No first char  No first char
3473  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3474    Subject length lower bound = 3
3475  Starting byte set: a b  Starting byte set: a b
3476    
3477  /abc(?C)def/I  /abc(?C)def/I
# Line 3504  Need char = 'f' Line 3507  Need char = 'f'
3507    1    ^    ^     f    1    ^    ^     f
3508   0: abcdef   0: abcdef
3509    
3510  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3511    Capturing subpattern count = 0
3512    No options
3513    No first char
3514    Need char = 'f'
3515    Subject length lower bound = 7
3516    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517        1234abcdef
3518    --->1234abcdef
3519      1 ^              \d
3520      1  ^             \d
3521      1   ^            \d
3522      1    ^           \d
3523      2    ^   ^       d
3524     0: 4abcdef
3525        *** Failers
3526    No match
3527        abcdef
3528    No match
3529    
3530    /(?C1)\dabc(?C2)def/ISS
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  No options  No options
3533  No first char  No first char
# Line 3743  Capturing subpattern count = 1 Line 3766  Capturing subpattern count = 1
3766  No options  No options
3767  First char = 'x'  First char = 'x'
3768  Need char = 'z'  Need char = 'z'
3769    Max lookbehind = 3
3770     abcxyz\C+     abcxyz\C+
3771  Callout 0: last capture = 1  Callout 0: last capture = 1
3772   0: <unset>   0: <unset>
# Line 3819  Capturing subpattern count = 0 Line 3843  Capturing subpattern count = 0
3843  No options  No options
3844  No first char  No first char
3845  No need char  No need char
3846    Subject length lower bound = 1
3847  Starting byte set: a b  Starting byte set: a b
3848    
3849  /(?R)/I  /(?R)/I
# Line 3907  Need char = '<' Line 3932  Need char = '<'
3932          Bra          Bra
3933          CBra 1          CBra 1
3934          a          a
         Once  
3935          Recurse          Recurse
         Ket  
3936          b          b
3937          Ket          Ket
3938          Ket          Ket
# Line 3938  No options Line 3961  No options
3961  First char = 'a'  First char = 'a'
3962  Need char = 'b'  Need char = 'b'
3963    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 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  
   
3964  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3965  Capturing subpattern count = 2  Capturing subpattern count = 2
3966  Options: anchored  Options: anchored
# Line 4163  Need char = 'a' Line 4153  Need char = 'a'
4153          Any          Any
4154          \1          \1
4155          bbb          bbb
         Once  
4156          Recurse          Recurse
         Ket  
4157          d          d
4158          Ket          Ket
4159          End          End
# Line 4537  Need char = ']' Line 4525  Need char = ']'
4525          a          a
4526          CBra 2          CBra 2
4527          b          b
         Once  
4528          Recurse          Recurse
         Ket  
4529          c          c
4530          Ket          Ket
4531          Ket          Ket
# Line 4559  No need char Line 4545  No need char
4545          a          a
4546          CBra 2          CBra 2
4547          b          b
         Once  
4548          Recurse          Recurse
         Ket  
4549          c          c
4550          Ket          Ket
4551          KetRmax          KetRmax
# Line 4582  No need char Line 4566  No need char
4566          a          a
4567          CBra 2          CBra 2
4568          b          b
         Once  
4569          Recurse          Recurse
         Ket  
4570          c          c
4571          Ket          Ket
4572          Ket          Ket
# Line 4593  No need char Line 4575  No need char
4575          a          a
4576          CBra 2          CBra 2
4577          b          b
         Once  
4578          Recurse          Recurse
         Ket  
4579          c          c
4580          Ket          Ket
4581          Ket          Ket
# Line 4636  Capturing subpattern count = 3 Line 4616  Capturing subpattern count = 3
4616  Options: caseless  Options: caseless
4617  No first char  No first char
4618  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4619  Study returned NULL  Subject length lower bound = 8
4620    No set of starting bytes
4621       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4622   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4623   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4654  Capturing subpattern count = 0 Line 4635  Capturing subpattern count = 0
4635  No options  No options
4636  No first char  No first char
4637  Need char = 'b'  Need char = 'b'
4638  Study returned NULL  Subject length lower bound = 1
4639    No set of starting bytes
4640    
4641  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4642  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4674  Capturing subpattern count = 1 Line 4656  Capturing subpattern count = 1
4656  No options  No options
4657  No first char  No first char
4658  Need char = 'c'  Need char = 'c'
4659  Study returned NULL  Subject length lower bound = 1
4660    No set of starting bytes
4661    
4662  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4663  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4731  Need char = 'e' Line 4714  Need char = 'e'
4714   +4 ^   ^      e   +4 ^   ^      e
4715  No match  No match
4716    
4717  /a*b/ICDZ  /a*b/ICDZS
4718    ------------------------------------------------------------------
4719            Bra
4720            Callout 255 0 2
4721            a*+
4722            Callout 255 2 1
4723            b
4724            Callout 255 3 0
4725            Ket
4726            End
4727    ------------------------------------------------------------------
4728    Capturing subpattern count = 0
4729    Options:
4730    No first char
4731    Need char = 'b'
4732    Subject length lower bound = 1
4733    Starting byte set: a b
4734      ab
4735    --->ab
4736     +0 ^      a*
4737     +2 ^^     b
4738     +3 ^ ^
4739     0: ab
4740      aaaab
4741    --->aaaab
4742     +0 ^         a*
4743     +2 ^   ^     b
4744     +3 ^    ^
4745     0: aaaab
4746      aaaacb
4747    --->aaaacb
4748     +0 ^          a*
4749     +2 ^   ^      b
4750     +0  ^         a*
4751     +2  ^  ^      b
4752     +0   ^        a*
4753     +2   ^ ^      b
4754     +0    ^       a*
4755     +2    ^^      b
4756     +0      ^     a*
4757     +2      ^     b
4758     +3      ^^
4759     0: b
4760    
4761    /a*b/ICDZSS
4762  ------------------------------------------------------------------  ------------------------------------------------------------------
4763          Bra          Bra
4764          Callout 255 0 2          Callout 255 0 2
# Line 4814  Need char = 'b' Line 4841  Need char = 'b'
4841   +2    ^^      b   +2    ^^      b
4842  No match  No match
4843    
4844  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4845  ------------------------------------------------------------------  ------------------------------------------------------------------
4846          Bra          Bra
4847          Callout 255 0 9          Callout 255 0 9
# Line 4845  Capturing subpattern count = 1 Line 4872  Capturing subpattern count = 1
4872  Options:  Options:
4873  No first char  No first char
4874  Need char = 'x'  Need char = 'x'
4875    Subject length lower bound = 4
4876    Starting byte set: a d
4877    abcx    abcx
4878  --->abcx  --->abcx
4879   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4868  Need char = 'x' Line 4897  Need char = 'x'
4897  +10 ^   ^  +10 ^   ^
4898   0: defx   0: defx
4899   1: def   1: def
4900      ** Failers
4901    No match
4902    abcdefzx    abcdefzx
4903  --->abcdefzx  --->abcdefzx
4904   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4877  Need char = 'x' Line 4908  Need char = 'x'
4908   +4 ^  ^         |   +4 ^  ^         |
4909   +9 ^  ^         x   +9 ^  ^         x
4910   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4911   +0    ^         (abc|def)   +0    ^         (abc|def)
4912   +1    ^         a   +1    ^         a
4913   +5    ^         d   +5    ^         d
# Line 4890  Need char = 'x' Line 4915  Need char = 'x'
4915   +7    ^ ^       f   +7    ^ ^       f
4916   +8    ^  ^      )   +8    ^  ^      )
4917   +9    ^  ^      x   +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  
4918  No match  No match
4919    
4920  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4921    ------------------------------------------------------------------
4922            Bra
4923            Callout 255 0 9
4924            CBra 1
4925            Callout 255 1 1
4926            a
4927            Callout 255 2 1
4928            b
4929            Callout 255 3 1
4930            c
4931            Callout 255 4 0
4932            Alt
4933            Callout 255 5 1
4934            d
4935            Callout 255 6 1
4936            e
4937            Callout 255 7 1
4938            f
4939            Callout 255 8 0
4940            Ket
4941            Callout 255 9 1
4942            x
4943            Callout 255 10 0
4944            Ket
4945            End
4946    ------------------------------------------------------------------
4947  Capturing subpattern count = 1  Capturing subpattern count = 1
4948  Options:  Options:
4949  No first char  No first char
4950  No need char  Need char = 'x'
4951    ababab    abcx
4952  --->ababab  --->abcx
4953   +0 ^          (ab|cd){3,4}   +0 ^        (abc|def)
4954   +1 ^          a   +1 ^        a
4955   +2 ^^         b   +2 ^^       b
4956   +3 ^ ^        |   +3 ^ ^      c
4957   +1 ^ ^        a   +4 ^  ^     |
4958   +2 ^  ^       b   +9 ^  ^     x
4959   +3 ^   ^      |  +10 ^   ^
4960   +1 ^   ^      a   0: abcx
4961   +2 ^    ^     b   1: abc
4962   +3 ^     ^    |    defx
4963    --->defx
4964     +0 ^        (abc|def)
4965     +1 ^        a
4966     +5 ^        d
4967     +6 ^^       e
4968     +7 ^ ^      f
4969     +8 ^  ^     )
4970     +9 ^  ^     x
4971    +10 ^   ^
4972     0: defx
4973     1: def
4974      ** Failers
4975    No match
4976      abcdefzx
4977    --->abcdefzx
4978     +0 ^            (abc|def)
4979     +1 ^            a
4980     +2 ^^           b
4981     +3 ^ ^          c
4982     +4 ^  ^         |
4983     +9 ^  ^         x
4984     +5 ^            d
4985     +0  ^           (abc|def)
4986     +1  ^           a
4987     +5  ^           d
4988     +0   ^          (abc|def)
4989     +1   ^          a
4990     +5   ^          d
4991     +0    ^         (abc|def)
4992     +1    ^         a
4993     +5    ^         d
4994     +6    ^^        e
4995     +7    ^ ^       f
4996     +8    ^  ^      )
4997     +9    ^  ^      x
4998     +0     ^        (abc|def)
4999     +1     ^        a
5000     +5     ^        d
5001     +0      ^       (abc|def)
5002     +1      ^       a
5003     +5      ^       d
5004     +0       ^      (abc|def)
5005     +1       ^      a
5006     +5       ^      d
5007     +0        ^     (abc|def)
5008     +1        ^     a
5009     +5        ^     d
5010    No match
5011    
5012    /(ab|cd){3,4}/IC
5013    Capturing subpattern count = 1
5014    Options:
5015    No first char
5016    No need char
5017      ababab
5018    --->ababab
5019     +0 ^          (ab|cd){3,4}
5020     +1 ^          a
5021     +2 ^^         b
5022     +3 ^ ^        |
5023     +1 ^ ^        a
5024     +2 ^  ^       b
5025     +3 ^   ^      |
5026     +1 ^   ^      a
5027     +2 ^    ^     b
5028     +3 ^     ^    |
5029   +1 ^     ^    a   +1 ^     ^    a
5030   +4 ^     ^    c   +4 ^     ^    c
5031  +12 ^     ^  +12 ^     ^
# Line 4968  No need char Line 5073  No need char
5073   0: abcdcdcd   0: abcdcdcd
5074   1: cd   1: cd
5075    
5076  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5077    ------------------------------------------------------------------
5078            Bra
5079            Callout 255 0 14
5080            CBra 1
5081            Callout 255 1 4
5082            [ab]
5083            Callout 255 5 1
5084            {
5085            Callout 255 6 1
5086            ,
5087            Callout 255 7 1
5088            4
5089            Callout 255 8 1
5090            }
5091            Callout 255 9 1
5092            c
5093            Callout 255 10 0
5094            Alt
5095            Callout 255 11 1
5096            x
5097            Callout 255 12 1
5098            y
5099            Callout 255 13 0
5100            Ket
5101            Callout 255 14 0
5102            Ket
5103            End
5104    ------------------------------------------------------------------
5105    Capturing subpattern count = 1
5106    Options:
5107    No first char
5108    No need char
5109    Subject length lower bound = 2
5110    Starting byte set: a b x
5111        Note: that { does NOT introduce a quantifier
5112    --->Note: that { does NOT introduce a quantifier
5113     +0         ^                                        ([ab]{,4}c|xy)
5114     +1         ^                                        [ab]
5115     +5         ^^                                       {
5116    +11         ^                                        x
5117     +0                                 ^                ([ab]{,4}c|xy)
5118     +1                                 ^                [ab]
5119     +5                                 ^^               {
5120    +11                                 ^                x
5121     +0                                     ^            ([ab]{,4}c|xy)
5122     +1                                     ^            [ab]
5123     +5                                     ^^           {
5124    +11                                     ^            x
5125    No match
5126    
5127    /([ab]{,4}c|xy)/ICDZSS
5128  ------------------------------------------------------------------  ------------------------------------------------------------------
5129          Bra          Bra
5130          Callout 255 0 14          Callout 255 0 14
# Line 5258  Capturing subpattern count = 0 Line 5414  Capturing subpattern count = 0
5414  No options  No options
5415  No first char  No first char
5416  No need char  No need char
5417    Max lookbehind = 1
5418    ab cd\>1    ab cd\>1
5419   0:  cd   0:  cd
5420    
# Line 5266  Capturing subpattern count = 0 Line 5423  Capturing subpattern count = 0
5423  Options: dotall  Options: dotall
5424  No first char  No first char
5425  No need char  No need char
5426    Max lookbehind = 1
5427    ab cd\>1    ab cd\>1
5428   0:  cd   0:  cd
5429    
# Line 5420  No match Line 5578  No match
5578      123456\P      123456\P
5579  No match  No match
5580    
5581  /abc/I>testsavedregex  /abc/IS>testsavedregex
5582    Capturing subpattern count = 0
5583    No options
5584    First char = 'a'
5585    Need char = 'c'
5586    Subject length lower bound = 3
5587    No set of starting bytes
5588    Compiled pattern written to testsavedregex
5589    Study data written to testsavedregex
5590    <testsavedregex
5591    Compiled pattern loaded from testsavedregex
5592    Study data loaded from testsavedregex
5593        abc
5594     0: abc
5595        ** Failers
5596    No match
5597        bca
5598    No match
5599    
5600    /abc/ISS>testsavedregex
5601  Capturing subpattern count = 0  Capturing subpattern count = 0
5602  No options  No options
5603  First char = 'a'  First char = 'a'
5604  Need char = 'c'  Need char = 'c'
5605  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5606  <testsavedregex  <testsavedregex
5607  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5608  No study data  No study data
5609      abc      abc
5610   0: abc   0: abc
# Line 5436  No match Line 5613  No match
5613      bca      bca
5614  No match  No match
5615    
5616  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5617    Capturing subpattern count = 0
5618    No options
5619    First char = 'a'
5620    Need char = 'c'
5621    Subject length lower bound = 3
5622    No set of starting bytes
5623    Compiled pattern written to testsavedregex
5624    Study data written to testsavedregex
5625    <testsavedregex
5626    Compiled pattern (byte-inverted) loaded from testsavedregex
5627    Study data loaded from testsavedregex
5628        abc
5629     0: abc
5630        ** Failers
5631    No match
5632        bca
5633    No match
5634    
5635    /abc/IFSS>testsavedregex
5636  Capturing subpattern count = 0  Capturing subpattern count = 0
5637  No options  No options
5638  First char = 'a'  First char = 'a'
5639  Need char = 'c'  Need char = 'c'
5640  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5641  <testsavedregex  <testsavedregex
5642  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5643  No study data  No study data
5644      abc      abc
5645   0: abc   0: abc
# Line 5457  Capturing subpattern count = 1 Line 5653  Capturing subpattern count = 1
5653  No options  No options
5654  No first char  No first char
5655  No need char  No need char
5656    Subject length lower bound = 1
5657  Starting byte set: a b  Starting byte set: a b
5658  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5659  Study data written to testsavedregex  Study data written to testsavedregex
5660  <testsavedregex  <testsavedregex
5661  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5662  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5663      abc      abc
5664   0: a   0: a
# Line 5472  Study data loaded from testsavedregex Line 5669  Study data loaded from testsavedregex
5669      def      def
5670  No match  No match
5671    
5672    /(a|b)/ISS>testsavedregex
5673    Capturing subpattern count = 1
5674    No options
5675    No first char
5676    No need char
5677    Compiled pattern written to testsavedregex
5678    <testsavedregex
5679    Compiled pattern loaded from testsavedregex
5680    No study data
5681        abc
5682     0: a
5683     1: a
5684        ** Failers
5685     0: a
5686     1: a
5687        def
5688    No match
5689    
5690  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5691  Capturing subpattern count = 1  Capturing subpattern count = 1
5692  No options  No options
5693  No first char  No first char
5694  No need char  No need char
5695    Subject length lower bound = 1
5696  Starting byte set: a b  Starting byte set: a b
5697  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5698  Study data written to testsavedregex  Study data written to testsavedregex
5699  <testsavedregex  <testsavedregex
5700  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5701  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5702      abc      abc
5703   0: a   0: a
# Line 5492  Study data loaded from testsavedregex Line 5708  Study data loaded from testsavedregex
5708      def      def
5709  No match  No match
5710    
5711    /(a|b)/ISSF>testsavedregex
5712    Capturing subpattern count = 1
5713    No options
5714    No first char
5715    No need char
5716    Compiled pattern written to testsavedregex
5717    <testsavedregex
5718    Compiled pattern (byte-inverted) loaded from testsavedregex
5719    No study data
5720        abc
5721     0: a
5722     1: a
5723        ** Failers
5724     0: a
5725     1: a
5726        def
5727    No match
5728    
5729  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5730  Capturing subpattern count = 3  Capturing subpattern count = 3
5731  Max back reference = 1  Max back reference = 1
5732  Options: multiline dotall  Options: multiline dotall
5733  First char = '<'  First char = '<'
5734  Need char = '>'  Need char = '>'
5735      <!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>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5736   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>   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>
5737   1: seite   1: seite
5738   2: \x0a   2: \x0a
# Line 5547  No match Line 5781  No match
5781      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5782  No match  No match
5783    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5784  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5785  Capturing subpattern count = 0  Capturing subpattern count = 0
5786  No options  No options
# Line 5857  No need char Line 6073  No need char
6073      ((this))      ((this))
6074   0: ((this))   0: ((this))
6075    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6076  /\x{0000ff}/I  /\x{0000ff}/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078  No options  No options
6079  First char = 255  First char = \xff
6080  No need char  No need char
6081    
6082  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 5981  no parentheses with name "Z" Line 6186  no parentheses with name "Z"
6186   0: a1   0: a1
6187   1: a1   1: a1
6188   2: a1   2: a1
6189  copy substring Z failed -7  get substring Z failed -7
6190    G a1 (2) A    G a1 (2) A
6191    
6192  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6013  No need char Line 6218  No need char
6218    G a (1) A    G a (1) A
6219      cd\GA      cd\GA
6220   0: cd   0: cd
6221  copy substring A failed -7  get substring A failed -7
6222    
6223  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6224  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6181  No need char Line 6386  No need char
6386   9:   9:
6387  10: Y  10: Y
6388    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6389  /\s*,\s*/IS  /\s*,\s*/IS
6390  Capturing subpattern count = 0  Capturing subpattern count = 0
6391  No options  No options
6392  No first char  No first char
6393  Need char = ','  Need char = ','
6394    Subject length lower bound = 1
6395  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6396      \x0b,\x0b      \x0b,\x0b
6397   0: ,   0: ,
# Line 6493  Capturing subpattern count = 1 Line 6696  Capturing subpattern count = 1
6696  No options  No options
6697  No first char  No first char
6698  No need char  No need char
6699    Subject length lower bound = 1
6700  Starting byte set: C a b c d  Starting byte set: C a b c d
6701    
6702  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6500  Capturing subpattern count = 1 Line 6704  Capturing subpattern count = 1
6704  No options  No options
6705  No first char  No first char
6706  Need char = 'z'  Need char = 'z'
6707    Subject length lower bound = 4
6708  Starting byte set: a b  Starting byte set: a b
6709    
6710  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6507  Capturing subpattern count = 1 Line 6712  Capturing subpattern count = 1
6712  No options  No options
6713  No first char  No first char
6714  Need char = 'z'  Need char = 'z'
6715    Subject length lower bound = 4
6716  Starting byte set: a b  Starting byte set: a b
6717    
6718  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6514  Capturing subpattern count = 1 Line 6720  Capturing subpattern count = 1
6720  No options  No options
6721  No first char  No first char
6722  Need char = 'z'  Need char = 'z'
6723    Subject length lower bound = 4
6724  Starting byte set: a b c  Starting byte set: a b c
6725    
6726  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6521  Capturing subpattern count = 1 Line 6728  Capturing subpattern count = 1
6728  No options  No options
6729  No first char  No first char
6730  Need char = 'z'  Need char = 'z'
6731    Subject length lower bound = 4
6732  Starting byte set: a b c  Starting byte set: a b c
6733    
6734  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6528  Capturing subpattern count = 1 Line 6736  Capturing subpattern count = 1
6736  No options  No options
6737  No first char  No first char
6738  Need char = 'z'  Need char = 'z'
6739    Subject length lower bound = 4
6740  Starting byte set: a b c d  Starting byte set: a b c d
6741    
6742  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6535  Capturing subpattern count = 1 Line 6744  Capturing subpattern count = 1
6744  No options  No options
6745  No first char  No first char
6746  Need char = 'z'  Need char = 'z'
6747    Subject length lower bound = 4
6748  Starting byte set: a b c d  Starting byte set: a b c d
6749    
6750  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6607  No match Line 6817  No match
6817  ------------------------------------------------------------------  ------------------------------------------------------------------
6818          Bra          Bra
6819          ^          ^
6820          a*       /i a*
6821       NC A       /i A
6822          \d          \d
6823          Ket          Ket
6824          End          End
# Line 6627  Capturing subpattern count = 1 Line 6837  Capturing subpattern count = 1
6837  No options  No options
6838  No first char  No first char
6839  No need char  No need char
6840    Subject length lower bound = 1
6841  Starting byte set: a b c d  Starting byte set: a b c d
6842    
6843  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6634  Capturing subpattern count = 1 Line 6845  Capturing subpattern count = 1
6845  No options  No options
6846  No first char  No first char
6847  No need char  No need char
6848    Subject length lower bound = 1
6849  Starting byte set: a b c d  Starting byte set: a b c d
6850    
6851  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6641  Capturing subpattern count = 1 Line 6853  Capturing subpattern count = 1
6853  No options  No options
6854  No first char  No first char
6855  No need char  No need char
6856    Subject length lower bound = 1
6857  Starting byte set: a b c d  Starting byte set: a b c d
6858    
6859  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6648  Capturing subpattern count = 1 Line 6861  Capturing subpattern count = 1
6861  No options  No options
6862  No first char  No first char
6863  No need char  No need char
6864    Subject length lower bound = 2
6865  Starting byte set: a b  Starting byte set: a b
6866    
6867  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7232  Matched, but too many substrings Line 7446  Matched, but too many substrings
7446  /[^a]+a/BZi  /[^a]+a/BZi
7447  ------------------------------------------------------------------  ------------------------------------------------------------------
7448          Bra          Bra
7449          [^A]++       /i [^a]++
7450       NC a       /i a
7451          Ket          Ket
7452          End          End
7453  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7241  Matched, but too many substrings Line 7455  Matched, but too many substrings
7455  /[^a]+A/BZi  /[^a]+A/BZi
7456  ------------------------------------------------------------------  ------------------------------------------------------------------
7457          Bra          Bra
7458          [^A]++       /i [^a]++
7459       NC A       /i A
7460          Ket          Ket
7461          End          End
7462  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7437  No match Line 7651  No match
7651  ------------------------------------------------------------------  ------------------------------------------------------------------
7652          Bra          Bra
7653          ^          ^
         Once  
7654          Recurse          Recurse
         Ket  
7655          [()]          [()]
7656          CBra 1          CBra 1
7657          Ket          Ket
# Line 7453  No match Line 7665  No match
7665          ^          ^
7666          CBra 1          CBra 1
7667          Cond          Cond
7668        2 Cond ref        2 Cond nref
7669          y          y
7670          Ket          Ket
7671          [()]          [()]
# Line 7473  No match Line 7685  No match
7685  ------------------------------------------------------------------  ------------------------------------------------------------------
7686          Bra          Bra
7687          ^          ^
         Once  
7688          Recurse          Recurse
         Ket  
7689          ()          ()
7690          CBra 1          CBra 1
7691          Ket          Ket
# Line 7487  No match Line 7697  No match
7697  ------------------------------------------------------------------  ------------------------------------------------------------------
7698          Bra          Bra
7699          ^          ^
         Once  
7700          Recurse          Recurse
         Ket  
7701          [(\]a]          [(\]a]
7702          CBra 1          CBra 1
7703          Ket          Ket
# Line 7502  No match Line 7710  No match
7710  ------------------------------------------------------------------  ------------------------------------------------------------------
7711          Bra          Bra
7712          ^          ^
         Once  
7713          Recurse          Recurse
         Ket  
7714          CBra 1          CBra 1
7715          Ket          Ket
7716          Ket          Ket
# Line 7636  Options: extended Line 7842  Options: extended
7842  First char = 'x'  First char = 'x'
7843  Need char = 'z'  Need char = 'z'
7844    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7845  /(a|)*\d/  /(a|)*\d/
7846    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7847  No match  No match
# Line 7956  No match Line 8159  No match
8159          Alt          Alt
8160          c          c
8161          Ket          Ket
         Once  
8162          Recurse          Recurse
8163          Ket          Ket
         Ket  
8164          End          End
8165  ------------------------------------------------------------------  ------------------------------------------------------------------
8166      abc      abc
# Line 7970  No match Line 8171  No match
8171  ------------------------------------------------------------------  ------------------------------------------------------------------
8172          Bra          Bra
8173          xy          xy
         Once  
8174          Recurse          Recurse
         Ket  
8175          CBra 1          CBra 1
8176          abc          abc
8177          Ket          Ket
# Line 8202  Failed: syntax error in subpattern name Line 8401  Failed: syntax error in subpattern name
8401   3: <unset>   3: <unset>
8402   4: x   4: x
8403    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8404  /\H++X/BZ  /\H++X/BZ
8405  ------------------------------------------------------------------  ------------------------------------------------------------------
8406          Bra          Bra
# Line 8453  No match Line 8592  No match
8592  ------------------------------------------------------------------  ------------------------------------------------------------------
8593    
8594  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8595  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8596   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8597    
8598  /[\E]AAA/  /[\E]AAA/
# Line 8626  No match Line 8765  No match
8765  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8766  No match  No match
8767    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8768  /a(*MARK)b/  /a(*MARK)b/
8769  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8770    
8771  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8772  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8638  Failed: number is too big at offset 19 Line 8774  Failed: number is too big at offset 19
8774  /\g6666666666/  /\g6666666666/
8775  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8776    
8777  /[\g6666666666]/  /[\g6666666666]/BZ
8778  Failed: number is too big at offset 12  ------------------------------------------------------------------
8779            Bra
8780  /(?1)\c[/          [6g]
8781  Failed: reference to non-existent subpattern at offset 3          Ket
8782            End
8783    ------------------------------------------------------------------
8784    
8785    /(?1)\c[/
8786    Failed: reference to non-existent subpattern at offset 3
8787    
8788  /.+A/<crlf>  /.+A/<crlf>
8789      \r\nA      \r\nA
8790  No match  No match
# Line 8719  No match Line 8860  No match
8860  No match  No match
8861      a\x85b      a\x85b
8862  No match  No match
8863    
8864    /(*ANY).*/g
8865        abc\r\ndef
8866     0: abc
8867     0:
8868     0: def
8869     0:
8870    
8871    /(*ANYCRLF).*/g
8872        abc\r\ndef
8873     0: abc
8874     0:
8875     0: def
8876     0:
8877    
8878    /(*CRLF).*/g
8879        abc\r\ndef
8880     0: abc
8881     0:
8882     0: def
8883     0:
8884    
8885  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8886  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8924  Failed: subpattern name expected at offs Line 9086  Failed: subpattern name expected at offs
9086  /\k{}/  /\k{}/
9087  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9088    
9089    /\k/
9090    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9091    
9092    /\kabc/
9093    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9094    
9095  /(?P=)/  /(?P=)/
9096  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9097    
# Line 9091  Capturing subpattern count = 1 Line 9259  Capturing subpattern count = 1
9259  No options  No options
9260  No first char  No first char
9261  No need char  No need char
9262    Subject length lower bound = 1
9263  Starting byte set: x y z  Starting byte set: x y z
9264    
9265  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9144  No options Line 9313  No options
9313  First char at start or follows newline  First char at start or follows newline
9314  No need char  No need char
9315    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9316  /xyz/C  /xyz/C
9317    xyz    xyz
9318  --->xyz  --->xyz
# Line 9204  No match Line 9365  No match
9365   +0        ^     x   +0        ^     x
9366   +0         ^    x   +0         ^    x
9367  No match  No match
9368    
9369    /(*NO_START_OPT)xyz/C
9370      abcxyz
9371    --->abcxyz
9372    +15 ^          x
9373    +15  ^         x
9374    +15   ^        x
9375    +15    ^       x
9376    +16    ^^      y
9377    +17    ^ ^     z
9378    +18    ^  ^
9379     0: xyz
9380    
9381    /xyz/CY
9382      abcxyz
9383    --->abcxyz
9384     +0 ^          x
9385     +0  ^         x
9386     +0   ^        x
9387     +0    ^       x
9388     +1    ^^      y
9389     +2    ^ ^     z
9390     +3    ^  ^
9391     0: xyz
9392    
9393  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9394      "ab"      "ab"
# Line 9522  Partial match: the cat Line 9707  Partial match: the cat
9707     abc\P\P     abc\P\P
9708   0: abc   0: abc
9709    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9710  /abc\K123/  /abc\K123/
9711      xyzabc123pqr      xyzabc123pqr
9712   0: 123   0: 123
# Line 9557  Partial match: +ab Line 9734  Partial match: +ab
9734  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9735  ------------------------------------------------------------------  ------------------------------------------------------------------
9736          Bra          Bra
         Once  
9737          Recurse          Recurse
         Ket  
         Once  
9738          Recurse          Recurse
         Ket  
9739          Cond          Cond
9740          Cond def          Cond def
9741          CBra 1          CBra 1
# Line 9583  Partial match: +ab Line 9756  Partial match: +ab
9756  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9757  ------------------------------------------------------------------  ------------------------------------------------------------------
9758          Bra          Bra
         Once  
9759          Recurse          Recurse
         Ket  
         Once  
9760          Recurse          Recurse
         Ket  
9761          Cond          Cond
9762          Cond def          Cond def
9763          CBra 1          CBra 1
# Line 9606  Partial match: +ab Line 9775  Partial match: +ab
9775          End          End
9776  ------------------------------------------------------------------  ------------------------------------------------------------------
9777    
9778    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9779    ------------------------------------------------------------------
9780            Bra
9781            CBra 1
9782            ab
9783            Ket
9784            CBra 2
9785            x
9786            CBra 3
9787            y
9788            Ket
9789            z
9790            CBra 4
9791            cd
9792            Close 4
9793            Close 2
9794            *ACCEPT
9795            Ket
9796            Ket
9797            pq
9798            Ket
9799            End
9800    ------------------------------------------------------------------
9801    
9802  /abc\K/+  /abc\K/+
9803      abcdef      abcdef
9804   0:   0:
# Line 9810  No match Line 10003  No match
10003   6: d   6: d
10004   7: Y   7: Y
10005    
10006  / End of testinput2 /  /(?<=b(?1)|zzz)(a)/
10007        xbaax
10008     0: a
10009     1: a
10010        xzzzax
10011     0: a
10012     1: a
10013    
10014    /(a)(?<=b\1)/
10015    Failed: lookbehind assertion is not fixed length at offset 10
10016    
10017    /(a)(?<=b+(?1))/
10018    Failed: lookbehind assertion is not fixed length at offset 13
10019    
10020    /(a+)(?<=b(?1))/
10021    Failed: lookbehind assertion is not fixed length at offset 14
10022    
10023    /(a(?<=b(?1)))/
10024    Failed: lookbehind assertion is not fixed length at offset 13
10025    
10026    /(?<=b(?1))xyz/
10027    Failed: reference to non-existent subpattern at offset 8
10028    
10029    /(?<=b(?1))xyz(b+)pqrstuvew/
10030    Failed: lookbehind assertion is not fixed length at offset 26
10031    
10032    /(a|bc)\1/SI
10033    Capturing subpattern count = 1
10034    Max back reference = 1
10035    No options
10036    No first char
10037    No need char
10038    Subject length lower bound = 2
10039    Starting byte set: a b
10040    
10041    /(a|bc)\1{2,3}/SI
10042    Capturing subpattern count = 1
10043    Max back reference = 1
10044    No options
10045    No first char
10046    No need char
10047    Subject length lower bound = 3
10048    Starting byte set: a b
10049    
10050    /(a|bc)(?1)/SI
10051    Capturing subpattern count = 1
10052    No options
10053    No first char
10054    No need char
10055    Subject length lower bound = 2
10056    Starting byte set: a b
10057    
10058    /(a|b\1)(a|b\1)/SI
10059    Capturing subpattern count = 2
10060    Max back reference = 1
10061    No options
10062    No first char
10063    No need char
10064    Subject length lower bound = 2
10065    Starting byte set: a b
10066    
10067    /(a|b\1){2}/SI
10068    Capturing subpattern count = 1
10069    Max back reference = 1
10070    No options
10071    No first char
10072    No need char
10073    Subject length lower bound = 2
10074    Starting byte set: a b
10075    
10076    /(a|bbbb\1)(a|bbbb\1)/SI
10077    Capturing subpattern count = 2
10078    Max back reference = 1
10079    No options
10080    No first char
10081    No need char
10082    Subject length lower bound = 2
10083    Starting byte set: a b
10084    
10085    /(a|bbbb\1){2}/SI
10086    Capturing subpattern count = 1
10087    Max back reference = 1
10088    No options
10089    No first char
10090    No need char
10091    Subject length lower bound = 2
10092    Starting byte set: a b
10093    
10094    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10095    Capturing subpattern count = 1
10096    Options: anchored
10097    No first char
10098    Need char = ':'
10099    Subject length lower bound = 22
10100    No set of starting bytes
10101    
10102    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10103    Capturing subpattern count = 11
10104    Options: caseless dotall
10105    First char = '<'
10106    Need char = '>'
10107    Subject length lower bound = 47
10108    No set of starting bytes
10109    
10110    "(?>.*/)foo"SI
10111    Capturing subpattern count = 0
10112    No options
10113    First char at start or follows newline
10114    Need char = 'o'
10115    Subject length lower bound = 4
10116    No set of starting bytes
10117    
10118    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10119    Capturing subpattern count = 0
10120    Options: extended
10121    No first char
10122    Need char = '-'
10123    Subject length lower bound = 8
10124    No set of starting bytes
10125    
10126    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10127    Capturing subpattern count = 1
10128    Options: caseless
10129    No first char
10130    No need char
10131    Subject length lower bound = 1
10132    Starting byte set: A B C a b c
10133    
10134    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10135    Capturing subpattern count = 0
10136    No options
10137    No first char
10138    Need char = 'b'
10139    Subject length lower bound = 41
10140    Starting byte set: c d
10141    
10142    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10143     ([\"\'])?                       # find single or double quote
10144     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10145                                     # quote, otherwise match up to next space
10146    /isxSI
10147    Capturing subpattern count = 3
10148    Max back reference = 1
10149    Options: caseless extended dotall
10150    First char = '<'
10151    Need char = '='
10152    Subject length lower bound = 9
10153    No set of starting bytes
10154    
10155    /^(?!:)                       # colon disallowed at start
10156      (?:                         # start of item
10157        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10158        (?(1)0 | () ) )           # if null previously matched, fail; else null
10159        :                         # followed by colon
10160      ){1,7}                      # end item; 1-7 of them required
10161      [0-9a-f]{1,4} $             # final hex number at end of string
10162      (?(1)|.)                    # check that there was an empty component
10163      /xiIS
10164    Capturing subpattern count = 1
10165    Options: anchored caseless extended
10166    No first char
10167    Need char = ':'
10168    Subject length lower bound = 2
10169    No set of starting bytes
10170    
10171    /(?|(?<a>A)|(?<a>B))/I
10172    Capturing subpattern count = 1
10173    Named capturing subpatterns:
10174      a   1
10175      a   1
10176    No options
10177    No first char
10178    No need char
10179        AB\Ca
10180     0: A
10181     1: A
10182      C A (1) a
10183        BA\Ca
10184     0: B
10185     1: B
10186      C B (1) a
10187    
10188    /(?|(?<a>A)|(?<b>B))/
10189    Failed: different names for subpatterns of the same number are not allowed at offset 15
10190    
10191    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10192        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10193        (?('quote')[a-z]+|[0-9]+)/JIx
10194    Capturing subpattern count = 6
10195    Named capturing subpatterns:
10196      apostrophe   2
10197      apostrophe   5
10198      quote        1
10199      quote        4
10200      realquote    3
10201      realquote    6
10202    Options: extended dupnames
10203    No first char
10204    No need char
10205        a"aaaaa
10206     0: a"aaaaa
10207     1: "
10208     2: <unset>
10209     3: "
10210        b"aaaaa
10211     0: b"aaaaa
10212     1: <unset>
10213     2: <unset>
10214     3: <unset>
10215     4: "
10216     5: <unset>
10217     6: "
10218        ** Failers
10219    No match
10220        b"11111
10221    No match
10222        a"11111
10223    No match
10224    
10225    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10226    ------------------------------------------------------------------
10227            Bra
10228            ^
10229            Bra
10230            CBra 1
10231            a
10232            Ket
10233            CBra 2
10234            b
10235            Ket
10236            CBra 3
10237            c
10238            Ket
10239            CBra 4
10240            d
10241            Ket
10242            Alt
10243            CBra 1
10244            e
10245            Ket
10246            Ket
10247            Cond
10248          4 Cond nref
10249            X
10250            Alt
10251            Y
10252            Ket
10253            Ket
10254            End
10255    ------------------------------------------------------------------
10256    Capturing subpattern count = 4
10257    Named capturing subpatterns:
10258      D   4
10259      D   1
10260    Options: anchored extended dupnames
10261    No first char
10262    No need char
10263        abcdX
10264     0: abcdX
10265     1: a
10266     2: b
10267     3: c
10268     4: d
10269        eX
10270     0: eX
10271     1: e
10272        ** Failers
10273    No match
10274        abcdY
10275    No match
10276        ey
10277    No match
10278    
10279    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10280    ------------------------------------------------------------------
10281            Bra
10282            CBra 1
10283            a
10284            Ket
10285            CBra 2
10286            b
10287            Ket
10288            CBra 3
10289            c
10290            Ket
10291            CBra 4
10292            d
10293            Cond
10294            Cond nrecurse 1
10295            $
10296            Alt
10297            Recurse
10298            Ket
10299            Ket
10300            Ket
10301            End
10302    ------------------------------------------------------------------
10303    Capturing subpattern count = 4
10304    Named capturing subpatterns:
10305      A   1
10306      A   4
10307    Options: extended dupnames
10308    First char = 'a'
10309    Need char = 'd'
10310        abcdd
10311     0: abcdd
10312     1: a
10313     2: b
10314     3: c
10315     4: dd
10316        ** Failers
10317    No match
10318        abcdde
10319    No match
10320    
10321    /abcd*/
10322        xxxxabcd\P
10323     0: abcd
10324        xxxxabcd\P\P
10325    Partial match: abcd
10326    
10327    /abcd*/i
10328        xxxxabcd\P
10329     0: abcd
10330        xxxxabcd\P\P
10331    Partial match: abcd
10332        XXXXABCD\P
10333     0: ABCD
10334        XXXXABCD\P\P
10335    Partial match: ABCD
10336    
10337    /abc\d*/
10338        xxxxabc1\P
10339     0: abc1
10340        xxxxabc1\P\P
10341    Partial match: abc1
10342    
10343    /(a)bc\1*/
10344        xxxxabca\P
10345     0: abca
10346     1: a
10347        xxxxabca\P\P
10348    Partial match: abca
10349    
10350    /abc[de]*/
10351        xxxxabcde\P
10352     0: abcde
10353        xxxxabcde\P\P
10354    Partial match: abcde
10355    
10356    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10357        broken and not behaving as specified in that it *does* bumpalong after
10358        hitting (*COMMIT). --/
10359    
10360    /(?1)(A(*COMMIT)|B)D/
10361        ABD
10362     0: ABD
10363     1: B
10364        XABD
10365     0: ABD
10366     1: B
10367        BAD
10368     0: BAD
10369     1: A
10370        ABXABD
10371     0: ABD
10372     1: B
10373        ** Failers
10374    No match
10375        ABX
10376    No match
10377        BAXBAD
10378    No match
10379    
10380    /(\3)(\1)(a)/<JS>
10381        cat
10382     0: a
10383     1:
10384     2:
10385     3: a
10386    
10387    /(\3)(\1)(a)/SI<JS>
10388    Capturing subpattern count = 3
10389    Max back reference = 3
10390    Options:
10391    No first char
10392    Need char = 'a'
10393    Subject length lower bound = 1
10394    No set of starting bytes
10395        cat
10396     0: a
10397     1:
10398     2:
10399     3: a
10400    
10401    /(\3)(\1)(a)/SI
10402    Capturing subpattern count = 3
10403    Max back reference = 3
10404    No options
10405    No first char
10406    Need char = 'a'
10407    Subject length lower bound = 3
10408    No set of starting bytes
10409        cat
10410    No match
10411    
10412    /i(?(DEFINE)(?<s>a))/SI
10413    Capturing subpattern count = 1
10414    Named capturing subpatterns:
10415      s   1
10416    No options
10417    First char = 'i'
10418    No need char
10419    Subject length lower bound = 1
10420    No set of starting bytes
10421        i
10422     0: i
10423    
10424    /()i(?(1)a)/SI
10425    Capturing subpattern count = 1
10426    No options
10427    No first char
10428    Need char = 'i'
10429    Subject length lower bound = 1
10430    Starting byte set: i
10431        ia
10432     0: ia
10433     1:
10434    
10435    /(?i)a(?-i)b|c/BZ
10436    ------------------------------------------------------------------
10437            Bra
10438         /i a
10439            b
10440            Alt
10441            c
10442            Ket
10443            End
10444    ------------------------------------------------------------------
10445        XabX
10446     0: ab
10447        XAbX
10448     0: Ab
10449        CcC
10450     0: c
10451        ** Failers
10452    No match
10453        XABX
10454    No match
10455    
10456    /(?i)a(?s)b|c/BZ
10457    ------------------------------------------------------------------
10458            Bra
10459         /i ab
10460            Alt
10461         /i c
10462            Ket
10463            End
10464    ------------------------------------------------------------------
10465    
10466    /(?i)a(?s-i)b|c/BZ
10467    ------------------------------------------------------------------
10468            Bra
10469         /i a
10470            b
10471            Alt
10472            c
10473            Ket
10474            End
10475    ------------------------------------------------------------------
10476    
10477    /^(ab(c\1)d|x){2}$/BZ
10478    ------------------------------------------------------------------
10479            Bra
10480            ^
10481            Once
10482            CBra 1
10483            ab
10484            CBra 2
10485            c
10486            \1
10487            Ket
10488            d
10489            Alt
10490            x
10491            Ket
10492            Ket
10493            Once
10494            CBra 1
10495            ab
10496            CBra 2
10497            c
10498            \1
10499            Ket
10500            d
10501            Alt
10502            x
10503            Ket
10504            Ket
10505            $
10506            Ket
10507            End
10508    ------------------------------------------------------------------
10509        xabcxd
10510     0: xabcxd
10511     1: abcxd
10512     2: cx
10513    
10514    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10515    ------------------------------------------------------------------
10516            Bra
10517            ^
10518            Braposzero
10519            SBraPos
10520            Recurse
10521            KetRpos
10522            Cond
10523            Cond def
10524            CBra 1
10525            Any
10526            Ket
10527            Ket
10528            $
10529            Ket
10530            End
10531    ------------------------------------------------------------------
10532    
10533    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10534    ------------------------------------------------------------------
10535            Bra
10536            ^
10537            Brazero
10538            Once
10539            Recurse
10540            KetRmax
10541            Cond
10542            Cond def
10543            CBra 1
10544            Any
10545            Ket
10546            Ket
10547            $
10548            Ket
10549            End
10550    ------------------------------------------------------------------
10551    
10552    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10553         documents that the use of \K in assertions is "not well defined". The
10554         last is here because Perl gives the match as "b" rather than "ab". I
10555         believe this to be a Perl bug. --/
10556    
10557    /(?=a\Kb)ab/
10558        ab
10559     0: b
10560    
10561    /(?!a\Kb)ac/
10562        ac
10563     0: ac
10564    
10565    /^abc(?<=b\Kc)d/
10566        abcd
10567     0: cd
10568    
10569    /^abc(?<!b\Kq)d/
10570        abcd
10571     0: abcd
10572    
10573    /(?>a\Kb)z|(ab)/
10574        ab
10575     0: ab
10576     1: ab
10577    
10578    /----------------------/
10579    
10580    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10581    Failed: recursive call could loop indefinitely at offset 31
10582    
10583    /abc(*MARK:)pqr/
10584    Failed: (*MARK) must have an argument at offset 10
10585    
10586    /abc(*:)pqr/
10587    Failed: (*MARK) must have an argument at offset 6
10588    
10589    /abc(*FAIL:123)xyz/
10590    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10591    
10592    /--- This should, and does, fail. In Perl, it does not, which I think is a
10593         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10594    
10595    /A(*COMMIT)B/+K
10596        ACABX
10597    No match
10598    
10599    /--- These should be different, but in Perl 5.11 are not, which I think
10600         is a bug in Perl. ---/
10601    
10602    /A(*THEN)B|A(*THEN)C/K
10603        AC
10604     0: AC
10605    
10606    /A(*PRUNE)B|A(*PRUNE)C/K
10607        AC
10608    No match
10609    
10610    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10611         PRUNE kills it. Perl behaves differently. ---/
10612    
10613    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10614        AAAC
10615    No match, mark = A
10616    
10617    /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10618    though PCRE does. ---/
10619    
10620    /^A(*:A)B|^X(*:A)Y/K
10621        ** Failers
10622    No match
10623        XAQQ
10624    No match, mark = A
10625    
10626    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10627    optimizations defeat this. So does the PCRE optimization unless we disable it
10628    with \Y. ---/
10629    
10630    /(*COMMIT)ABC/
10631        ABCDEFG
10632     0: ABC
10633        ** Failers
10634    No match
10635        DEFGABC\Y
10636    No match
10637    
10638    /^(ab (c+(*THEN)cd) | xyz)/x
10639        abcccd
10640    No match
10641    
10642    /^(ab (c+(*PRUNE)cd) | xyz)/x
10643        abcccd
10644    No match
10645    
10646    /^(ab (c+(*FAIL)cd) | xyz)/x
10647        abcccd
10648    No match
10649    
10650    /--- Perl 5.11 gets some of these wrong ---/
10651    
10652    /(?>.(*ACCEPT))*?5/
10653        abcde
10654     0: a
10655    
10656    /(.(*ACCEPT))*?5/
10657        abcde
10658     0: a
10659     1: a
10660    
10661    /(.(*ACCEPT))5/
10662        abcde
10663     0: a
10664     1: a
10665    
10666    /(.(*ACCEPT))*5/
10667        abcde
10668     0: a
10669     1: a
10670    
10671    /A\NB./BZ
10672    ------------------------------------------------------------------
10673            Bra
10674            A
10675            Any
10676            B
10677            Any
10678            Ket
10679            End
10680    ------------------------------------------------------------------
10681        ACBD
10682     0: ACBD
10683        *** Failers
10684    No match
10685        A\nB
10686    No match
10687        ACB\n
10688    No match
10689    
10690    /A\NB./sBZ
10691    ------------------------------------------------------------------
10692            Bra
10693            A
10694            Any
10695            B
10696            AllAny
10697            Ket
10698            End
10699    ------------------------------------------------------------------
10700        ACBD
10701     0: ACBD
10702        ACB\n
10703     0: ACB\x0a
10704        *** Failers
10705    No match
10706        A\nB
10707    No match
10708    
10709    /A\NB/<crlf>
10710        A\nB
10711     0: A\x0aB
10712        A\rB
10713     0: A\x0dB
10714        ** Failers
10715    No match
10716        A\r\nB
10717    No match
10718    
10719    /\R+b/BZ
10720    ------------------------------------------------------------------
10721            Bra
10722            \R++
10723            b
10724            Ket
10725            End
10726    ------------------------------------------------------------------
10727    
10728    /\R+\n/BZ
10729    ------------------------------------------------------------------
10730            Bra
10731            \R+
10732            \x0a
10733            Ket
10734            End
10735    ------------------------------------------------------------------
10736    
10737    /\R+\d/BZ
10738    ------------------------------------------------------------------
10739            Bra
10740            \R++
10741            \d
10742            Ket
10743            End
10744    ------------------------------------------------------------------
10745    
10746    /\d*\R/BZ
10747    ------------------------------------------------------------------
10748            Bra
10749            \d*+
10750            \R
10751            Ket
10752            End
10753    ------------------------------------------------------------------
10754    
10755    /\s*\R/BZ
10756    ------------------------------------------------------------------
10757            Bra
10758            \s*+
10759            \R
10760            Ket
10761            End
10762    ------------------------------------------------------------------
10763    
10764    /-- Perl treats this one differently, not failing the second string. I believe
10765        that is a bug in Perl. --/
10766    
10767    /^((abc|abcx)(*THEN)y|abcd)/
10768        abcd
10769     0: abcd
10770     1: abcd
10771        *** Failers
10772    No match
10773        abcxy
10774    No match
10775    
10776    /(?<=abc)def/
10777        abc\P\P
10778    Partial match: abc
10779    
10780    /abc$/
10781        abc
10782     0: abc
10783        abc\P
10784     0: abc
10785        abc\P\P
10786    Partial match: abc
10787    
10788    /abc$/m
10789        abc
10790     0: abc
10791        abc\n
10792     0: abc
10793        abc\P\P
10794    Partial match: abc
10795        abc\n\P\P
10796     0: abc
10797        abc\P
10798     0: abc
10799        abc\n\P
10800     0: abc
10801    
10802    /abc\z/
10803        abc
10804     0: abc
10805        abc\P
10806     0: abc
10807        abc\P\P
10808    Partial match: abc
10809    
10810    /abc\Z/
10811        abc
10812     0: abc
10813        abc\P
10814     0: abc
10815        abc\P\P
10816    Partial match: abc
10817    
10818    /abc\b/
10819        abc
10820     0: abc
10821        abc\P
10822     0: abc
10823        abc\P\P
10824    Partial match: abc
10825    
10826    /abc\B/
10827        abc
10828    No match
10829        abc\P
10830    Partial match: abc
10831        abc\P\P
10832    Partial match: abc
10833    
10834    /.+/
10835        abc\>0
10836     0: abc
10837        abc\>1
10838     0: bc
10839        abc\>2
10840     0: c
10841        abc\>3
10842    No match
10843        abc\>4
10844    Error -24 (bad offset value)
10845        abc\>-4
10846    Error -24 (bad offset value)
10847    
10848    /^\cģ/
10849    Failed: \c must be followed by an ASCII character at offset 3
10850    
10851    /(?P<abn>(?P=abn)xxx)/BZ
10852    ------------------------------------------------------------------
10853            Bra
10854            Once
10855            CBra 1
10856            \1
10857            xxx
10858            Ket
10859            Ket
10860            Ket
10861            End
10862    ------------------------------------------------------------------
10863    
10864    /(a\1z)/BZ
10865    ------------------------------------------------------------------
10866            Bra
10867            Once
10868            CBra 1
10869            a
10870            \1
10871            z
10872            Ket
10873            Ket
10874            Ket
10875            End
10876    ------------------------------------------------------------------
10877    
10878    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10879    Failed: syntax error in subpattern name (missing terminator) at offset 29
10880    
10881    /(?P<abn>(?P=axn)xxx)/BZ
10882    Failed: reference to non-existent subpattern at offset 15
10883    
10884    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10885    ------------------------------------------------------------------
10886            Bra
10887            CBra 1
10888            \2
10889            xxx
10890            Ket
10891            CBra 2
10892            yy
10893            Ket
10894            Ket
10895            End
10896    ------------------------------------------------------------------
10897    
10898    /-- These tests are here because Perl gets the first one wrong. --/
10899    
10900    /(\R*)(.)/s
10901        \r\n
10902     0: \x0d
10903     1:
10904     2: \x0d
10905        \r\r\n\n\r
10906     0: \x0d\x0d\x0a\x0a\x0d
10907     1: \x0d\x0d\x0a\x0a
10908     2: \x0d
10909        \r\r\n\n\r\n
10910     0: \x0d\x0d\x0a\x0a\x0d
10911     1: \x0d\x0d\x0a\x0a
10912     2: \x0d
10913    
10914    /(\R)*(.)/s
10915        \r\n
10916     0: \x0d
10917     1: <unset>
10918     2: \x0d
10919        \r\r\n\n\r
10920     0: \x0d\x0d\x0a\x0a\x0d
10921     1: \x0a
10922     2: \x0d
10923        \r\r\n\n\r\n
10924     0: \x0d\x0d\x0a\x0a\x0d
10925     1: \x0a
10926     2: \x0d
10927    
10928    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10929        \r\n
10930     0: \x0d
10931     1:
10932     2: \x0d
10933        \r\r\n\n\r
10934     0: \x0d\x0d\x0a\x0a\x0d
10935     1: \x0d\x0d\x0a\x0a
10936     2: \x0d
10937        \r\r\n\n\r\n
10938     0: \x0d\x0d\x0a\x0a\x0d
10939     1: \x0d\x0d\x0a\x0a
10940     2: \x0d
10941    
10942    /-- --/
10943    
10944    /^abc$/BZ
10945    ------------------------------------------------------------------
10946            Bra
10947            ^
10948            abc
10949            $
10950            Ket
10951            End
10952    ------------------------------------------------------------------
10953    
10954    /^abc$/BZm
10955    ------------------------------------------------------------------
10956            Bra
10957         /m ^
10958            abc
10959         /m $
10960            Ket
10961            End
10962    ------------------------------------------------------------------
10963    
10964    /^(a)*+(\w)/S
10965        aaaaX
10966     0: aaaaX
10967     1: a
10968     2: X
10969        ** Failers
10970    No match
10971        aaaa
10972    No match
10973    
10974    /^(?:a)*+(\w)/S
10975        aaaaX
10976     0: aaaaX
10977     1: X
10978        ** Failers
10979    No match
10980        aaaa
10981    No match
10982    
10983    /(a)++1234/SDZ
10984    ------------------------------------------------------------------
10985            Bra
10986            CBraPos 1
10987            a
10988            KetRpos
10989            1234
10990            Ket
10991            End
10992    ------------------------------------------------------------------
10993    Capturing subpattern count = 1
10994    No options
10995    First char = 'a'
10996    Need char = '4'
10997    Subject length lower bound = 5
10998    No set of starting bytes
10999    
11000    /([abc])++1234/SI
11001    Capturing subpattern count = 1
11002    No options
11003    No first char
11004    Need char = '4'
11005    Subject length lower bound = 5
11006    Starting byte set: a b c
11007    
11008    /(?<=(abc)+)X/
11009    Failed: lookbehind assertion is not fixed length at offset 10
11010    
11011    /(^ab)/I
11012    Capturing subpattern count = 1
11013    Options: anchored
11014    No first char
11015    No need char
11016    
11017    /(^ab)++/I
11018    Capturing subpattern count = 1
11019    Options: anchored
11020    No first char
11021    No need char
11022    
11023    /(^ab|^)+/I
11024    Capturing subpattern count = 1
11025    Options: anchored
11026    No first char
11027    No need char
11028    
11029    /(^ab|^)++/I
11030    Capturing subpattern count = 1
11031    Options: anchored
11032    No first char
11033    No need char
11034    
11035    /(?:^ab)/I
11036    Capturing subpattern count = 0
11037    Options: anchored
11038    No first char
11039    No need char
11040    
11041    /(?:^ab)++/I
11042    Capturing subpattern count = 0
11043    Options: anchored
11044    No first char
11045    No need char
11046    
11047    /(?:^ab|^)+/I
11048    Capturing subpattern count = 0
11049    Options: anchored
11050    No first char
11051    No need char
11052    
11053    /(?:^ab|^)++/I
11054    Capturing subpattern count = 0
11055    Options: anchored
11056    No first char
11057    No need char
11058    
11059    /(.*ab)/I
11060    Capturing subpattern count = 1
11061    No options
11062    First char at start or follows newline
11063    Need char = 'b'
11064    
11065    /(.*ab)++/I
11066    Capturing subpattern count = 1
11067    No options
11068    First char at start or follows newline
11069    Need char = 'b'
11070    
11071    /(.*ab|.*)+/I
11072    Capturing subpattern count = 1
11073    No options
11074    First char at start or follows newline
11075    No need char
11076    
11077    /(.*ab|.*)++/I
11078    Capturing subpattern count = 1
11079    No options
11080    First char at start or follows newline
11081    No need char
11082    
11083    /(?:.*ab)/I
11084    Capturing subpattern count = 0
11085    No options
11086    First char at start or follows newline
11087    Need char = 'b'
11088    
11089    /(?:.*ab)++/I
11090    Capturing subpattern count = 0
11091    No options
11092    First char at start or follows newline
11093    Need char = 'b'
11094    
11095    /(?:.*ab|.*)+/I
11096    Capturing subpattern count = 0
11097    No options
11098    First char at start or follows newline
11099    No need char
11100    
11101    /(?:.*ab|.*)++/I
11102    Capturing subpattern count = 0
11103    No options
11104    First char at start or follows newline
11105    No need char
11106    
11107    /(?=a)[bcd]/I
11108    Capturing subpattern count = 0
11109    No options
11110    First char = 'a'
11111    No need char
11112    
11113    /((?=a))[bcd]/I
11114    Capturing subpattern count = 1
11115    No options
11116    First char = 'a'
11117    No need char
11118    
11119    /((?=a))+[bcd]/I
11120    Capturing subpattern count = 1
11121    No options
11122    First char = 'a'
11123    No need char
11124    
11125    /((?=a))++[bcd]/I
11126    Capturing subpattern count = 1
11127    No options
11128    First char = 'a'
11129    No need char
11130    
11131    /(?=a+)[bcd]/iI
11132    Capturing subpattern count = 0
11133    Options: caseless
11134    First char = 'a' (caseless)
11135    No need char
11136    
11137    /(?=a+?)[bcd]/iI
11138    Capturing subpattern count = 0
11139    Options: caseless
11140    First char = 'a' (caseless)
11141    No need char
11142    
11143    /(?=a++)[bcd]/iI
11144    Capturing subpattern count = 0
11145    Options: caseless
11146    First char = 'a' (caseless)
11147    No need char
11148    
11149    /(?=a{3})[bcd]/iI
11150    Capturing subpattern count = 0
11151    Options: caseless
11152    First char = 'a' (caseless)
11153    Need char = 'a' (caseless)
11154    
11155    /(abc)\1+/S
11156    
11157    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11158    
11159    /(?1)(?:(b(*ACCEPT))){0}/
11160        b
11161     0: b
11162    
11163    /(?1)(?:(b(*ACCEPT))){0}c/
11164        bc
11165     0: bc
11166        ** Failers
11167    No match
11168        b
11169    No match
11170    
11171    /(?1)(?:((*ACCEPT))){0}c/
11172        c
11173     0: c
11174        c\N
11175     0: c
11176    
11177    /^.*?(?(?=a)a|b(*THEN)c)/
11178        ba
11179    No match
11180    
11181    /^.*?(?(?=a)a|bc)/
11182        ba
11183     0: ba
11184    
11185    /^.*?(?(?=a)a(*THEN)b|c)/
11186        ac
11187    No match
11188    
11189    /^.*?(?(?=a)a(*THEN)b)c/
11190        ac
11191    No match
11192    
11193    /^.*?(a(*THEN)b)c/
11194        aabc
11195    No match
11196    
11197    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11198        aabc
11199     0: aabc
11200    
11201    /^.*?(a(*THEN)b|z)c/
11202        aabc
11203     0: aabc
11204     1: ab
11205    
11206    /^.*?(z|a(*THEN)b)c/
11207        aabc
11208     0: aabc
11209     1: ab
11210    
11211    /-- --/
11212    
11213    /-- These studied versions are here because they are not Perl-compatible; the
11214        studying means the mark is not seen. --/
11215    
11216    /(*MARK:A)(*SKIP:B)(C|X)/KS
11217        C
11218     0: C
11219     1: C
11220    MK: A
11221        D
11222    No match, mark = A
11223    
11224    /(*:A)A+(*SKIP:A)(B|Z)/KS
11225        AAAC
11226    No match, mark = A
11227    
11228    /-- --/
11229    
11230    "(?=a*(*ACCEPT)b)c"
11231        c
11232     0: c
11233        c\N
11234     0: c
11235    
11236    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11237        c
11238     0: c
11239        c\N
11240     0: c
11241    
11242    /(?>(*ACCEPT)b)c/
11243        c
11244     0:
11245        c\N
11246    No match
11247    
11248    /(?:(?>(a)))+a%/++
11249        %aa%
11250     0: aa%
11251     0+
11252     1: a
11253     1+ a%
11254    
11255    /(a)b|ac/++SS
11256        ac\O3
11257    Matched, but too many substrings
11258     0: ac
11259     0+
11260    
11261    /(a)(b)x|abc/++
11262         abc\O6
11263     0: abc
11264     0+
11265    
11266    /(a)bc|(a)(b)\2/
11267        \O3abc
11268    Matched, but too many substrings
11269     0: abc
11270        \O4abc
11271    Matched, but too many substrings
11272     0: abc
11273    
11274    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11275    Capturing subpattern count = 2
11276    No options
11277    No first char
11278    No need char
11279    Subject length lower bound = 1
11280    No set of starting bytes
11281    
11282    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11283    Capturing subpattern count = 2
11284    No options
11285    No first char
11286    No need char
11287    Subject length lower bound = 3
11288    Starting byte set: a b
11289    
11290    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11291    Capturing subpattern count = 2
11292    No options
11293    No first char
11294    No need char
11295    Subject length lower bound = 4
11296    Starting byte set: a b
11297    
11298    /(abc)(?1)/SI
11299    Capturing subpattern count = 1
11300    No options
11301    First char = 'a'
11302    Need char = 'c'
11303    Subject length lower bound = 6
11304    No set of starting bytes
11305    
11306    /^(?>a)++/
11307        aa\M
11308    Minimum match() limit = 5
11309    Minimum match() recursion limit = 2
11310     0: aa
11311        aaaaaaaaa\M
11312    Minimum match() limit = 12
11313    Minimum match() recursion limit = 2
11314     0: aaaaaaaaa
11315    
11316    /(a)(?1)++/
11317        aa\M
11318    Minimum match() limit = 7
11319    Minimum match() recursion limit = 4
11320     0: aa
11321     1: a
11322        aaaaaaaaa\M
11323    Minimum match() limit = 21
11324    Minimum match() recursion limit = 4
11325     0: aaaaaaaaa
11326     1: a
11327    
11328    /(?:(foo)|(bar)|(baz))X/SS=
11329        bazfooX
11330     0: fooX
11331     1: foo
11332     2: <unset>
11333     3: <unset>
11334        foobazbarX
11335     0: barX
11336     1: <unset>
11337     2: bar
11338     3: <unset>
11339        barfooX
11340     0: fooX
11341     1: foo
11342     2: <unset>
11343     3: <unset>
11344        bazX
11345     0: bazX
11346     1: <unset>
11347     2: <unset>
11348     3: baz
11349        foobarbazX
11350     0: bazX
11351     1: <unset>
11352     2: <unset>
11353     3: baz
11354        bazfooX\O0
11355    Matched, but too many substrings
11356        bazfooX\O2
11357    Matched, but too many substrings
11358     0: fooX
11359        bazfooX\O4
11360    Matched, but too many substrings
11361     0: fooX
11362     1: <unset>
11363        bazfooX\O6
11364    Matched, but too many substrings
11365     0: fooX
11366     1: foo
11367     2: <unset>
11368        bazfooX\O8
11369    Matched, but too many substrings
11370     0: fooX
11371     1: foo
11372     2: <unset>
11373     3: <unset>
11374        bazfooX\O10
11375     0: fooX
11376     1: foo
11377     2: <unset>
11378     3: <unset>
11379    
11380    /(?=abc){3}abc/BZ
11381    ------------------------------------------------------------------
11382            Bra
11383            Assert
11384            abc
11385            Ket
11386            abc
11387            Ket
11388            End
11389    ------------------------------------------------------------------
11390    
11391    /(?=abc)+abc/BZ
11392    ------------------------------------------------------------------
11393            Bra
11394            Assert
11395            abc
11396            Ket
11397            abc
11398            Ket
11399            End
11400    ------------------------------------------------------------------
11401    
11402    /(?=abc)++abc/BZ
11403    ------------------------------------------------------------------
11404            Bra
11405            Assert
11406            abc
11407            Ket
11408            abc
11409            Ket
11410            End
11411    ------------------------------------------------------------------
11412    
11413    /(?=abc){0}xyz/BZ
11414    ------------------------------------------------------------------
11415            Bra
11416            Skip zero
11417            Assert
11418            abc
11419            Ket
11420            xyz
11421            Ket
11422            End
11423    ------------------------------------------------------------------
11424    
11425    /(?=(a))?./BZ
11426    ------------------------------------------------------------------
11427            Bra
11428            Brazero
11429            Assert
11430            CBra 1
11431            a
11432            Ket
11433            Ket
11434            Any
11435            Ket
11436            End
11437    ------------------------------------------------------------------
11438    
11439    /(?=(a))??./BZ
11440    ------------------------------------------------------------------
11441            Bra
11442            Braminzero
11443            Assert
11444            CBra 1
11445            a
11446            Ket
11447            Ket
11448            Any
11449            Ket
11450            End
11451    ------------------------------------------------------------------
11452    
11453    /^(?=(a)){0}b(?1)/BZ
11454    ------------------------------------------------------------------
11455            Bra
11456            ^
11457            Skip zero
11458            Assert
11459            CBra 1
11460            a
11461            Ket
11462            Ket
11463            b
11464            Recurse
11465            Ket
11466            End
11467    ------------------------------------------------------------------
11468    
11469    /(?(DEFINE)(a))?b(?1)/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Cond
11473            Cond def
11474            CBra 1
11475            a
11476            Ket
11477            Ket
11478            b
11479            Recurse
11480            Ket
11481            End
11482    ------------------------------------------------------------------
11483    
11484    /^(?=(?1))?[az]([abc])d/BZ
11485    ------------------------------------------------------------------
11486            Bra
11487            ^
11488            Brazero
11489            Assert
11490            Recurse
11491            Ket
11492            [az]
11493            CBra 1
11494            [a-c]
11495            Ket
11496            d
11497            Ket
11498            End
11499    ------------------------------------------------------------------
11500    
11501    /^(?!a){0}\w+/BZ
11502    ------------------------------------------------------------------
11503            Bra
11504            ^
11505            Skip zero
11506            Assert not
11507            a
11508            Ket
11509            \w+
11510            Ket
11511            End
11512    ------------------------------------------------------------------
11513    
11514    /(?<=(abc))?xyz/BZ
11515    ------------------------------------------------------------------
11516            Bra
11517            Brazero
11518            AssertB
11519            Reverse
11520            CBra 1
11521            abc
11522            Ket
11523            Ket
11524            xyz
11525            Ket
11526            End
11527    ------------------------------------------------------------------
11528    
11529    /[:a[:abc]b:]/BZ
11530    ------------------------------------------------------------------
11531            Bra
11532            [:[a-c]
11533            b:]
11534            Ket
11535            End
11536    ------------------------------------------------------------------
11537    
11538    /((?2))((?1))/SS
11539        abc
11540    Error -26 (nested recursion at the same subject position)
11541    
11542    /((?(R2)a+|(?1)b))/SS
11543        aaaabcde
11544    Error -26 (nested recursion at the same subject position)
11545    
11546    /(?(R)a*(?1)|((?R))b)/SS
11547        aaaabcde
11548    Error -26 (nested recursion at the same subject position)
11549    
11550    /(a+|(?R)b)/
11551    Failed: recursive call could loop indefinitely at offset 7
11552    
11553    /^(a(*:A)(d|e(*:B))z|aeq)/C
11554        adz
11555    --->adz
11556     +0 ^       ^
11557     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11558     +2 ^       a
11559     +3 ^^      (*:A)
11560     +8 ^^      (d|e(*:B))
11561    Latest Mark: A
11562     +9 ^^      d
11563    +10 ^ ^     |
11564    +18 ^ ^     z
11565    +19 ^  ^    |
11566    +24 ^  ^
11567     0: adz
11568     1: adz
11569     2: d
11570        aez
11571    --->aez
11572     +0 ^       ^
11573     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11574     +2 ^       a
11575     +3 ^^      (*:A)
11576     +8 ^^      (d|e(*:B))
11577    Latest Mark: A
11578     +9 ^^      d
11579    +11 ^^      e
11580    +12 ^ ^     (*:B)
11581    +17 ^ ^     )
11582    Latest Mark: B
11583    +18 ^ ^     z
11584    +19 ^  ^    |
11585    +24 ^  ^
11586     0: aez
11587     1: aez
11588     2: e
11589        aeqwerty
11590    --->aeqwerty
11591     +0 ^            ^
11592     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11593     +2 ^            a
11594     +3 ^^           (*:A)
11595     +8 ^^           (d|e(*:B))
11596    Latest Mark: A
11597     +9 ^^           d
11598    +11 ^^           e
11599    +12 ^ ^          (*:B)
11600    +17 ^ ^          )
11601    Latest Mark: B
11602    +18 ^ ^          z
11603    +20 ^            a
11604    +21 ^^           e
11605    +22 ^ ^          q
11606    +23 ^  ^         )
11607    +24 ^  ^
11608     0: aeq
11609     1: aeq
11610    
11611    /.(*F)/
11612        \P\Pabc
11613    No match
11614    
11615    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11616    Capturing subpattern count = 0
11617    No options
11618    First char = 't'
11619    Need char = 't'
11620    Max lookbehind = 1
11621    Subject length lower bound = 18
11622    No set of starting bytes
11623    
11624    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11625    Capturing subpattern count = 0
11626    No options
11627    No first char
11628    No need char
11629    Max lookbehind = 1
11630    Subject length lower bound = 8
11631    Starting byte set: < o t u
11632    
11633    /a(*SKIP)c|b(*ACCEPT)|/+SI
11634    Capturing subpattern count = 0
11635    No options
11636    No first char
11637    No need char
11638    Study returned NULL
11639        a
11640     0:
11641     0+
11642    
11643    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11644    Capturing subpattern count = 0
11645    No options
11646    No first char
11647    No need char
11648    Subject length lower bound = -1
11649    Starting byte set: a b x
11650        ax
11651     0: x
11652    
11653    'a*(*ACCEPT)b'+
11654        \N\N
11655    No match
11656        abc\N\N
11657     0: a
11658     0+ bc
11659        bbb\N\N
11660     0:
11661     0+ bb
11662    
11663    /(*ACCEPT)a/+I
11664    Capturing subpattern count = 0
11665    No options
11666    No first char
11667    No need char
11668        bax
11669     0:
11670     0+ bax
11671    
11672    /z(*ACCEPT)a/+I
11673    Capturing subpattern count = 0
11674    No options
11675    First char = 'z'
11676    No need char
11677        baxzbx
11678     0: z
11679     0+ bx
11680    
11681    /a(?:.)*?a/ims
11682        \Mabbbbbbbbbbbbbbbbbbbbba
11683    Minimum match() limit = 65
11684    Minimum match() recursion limit = 2
11685     0: abbbbbbbbbbbbbbbbbbbbba
11686    
11687    /a(?:.(*THEN))*?a/ims
11688        \Mabbbbbbbbbbbbbbbbbbbbba
11689    Minimum match() limit = 86
11690    Minimum match() recursion limit = 45
11691     0: abbbbbbbbbbbbbbbbbbbbba
11692    
11693    /a(?:.(*THEN:ABC))*?a/ims
11694        \Mabbbbbbbbbbbbbbbbbbbbba
11695    Minimum match() limit = 86
11696    Minimum match() recursion limit = 45
11697     0: abbbbbbbbbbbbbbbbbbbbba
11698    
11699    /-- These tests are in agreement with development Perl 5.015, which has fixed
11700        some things, but they don't all work with 5.012, so they aren't in the
11701        Perl-compatible tests. Those after the first come from Perl's own test
11702        files. --/
11703    
11704    /^((yes|no)(*THEN)(*F))?/
11705      yes
11706    No match
11707    
11708    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11709    AbcdCBefgBhiBqz
11710    No match
11711    
11712    /(A (.*)   C? (*THEN)  | A D) z/x
11713    AbcdCBefgBhiBqz
11714    No match
11715    
11716    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11717    AbcdCBefgBhiBqz
11718    No match
11719    
11720    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11721    AbcdCBefgBhiBqz
11722    No match
11723    
11724    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11725    AbcdCBefgBhiBqz
11726    No match
11727    
11728    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11729    AbcdCBefgBhiBqz
11730    No match
11731    
11732    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11733    AbcdCBefgBhiBqz
11734    No match
11735    
11736    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11737    AbcdCBefgBhiBqz
11738    No match
11739    
11740    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11741    AbcdCEBefgBhiBqz
11742    No match
11743    
11744    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11745    AbcdCEBefgBhiBqz
11746    No match
11747    
11748    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11749    AbcdCBefgBhiBqz
11750    No match
11751    
11752    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11753    AbcdCBefgBhiBqz
11754    No match
11755    
11756    /-----------------------------------------------/
11757    
11758    /^(?>a+)(?>(z+))\w/BZ
11759    ------------------------------------------------------------------
11760            Bra
11761            ^
11762            Once_NC
11763            a+
11764            Ket
11765            Once
11766            CBra 1
11767            z+
11768            Ket
11769            Ket
11770            \w
11771            Ket
11772            End
11773    ------------------------------------------------------------------
11774        aaaazzzzb
11775     0: aaaazzzzb
11776     1: zzzz
11777        ** Failers
11778    No match
11779        aazz
11780    No match
11781    
11782    /(.)(\1|a(?2))/
11783        bab
11784     0: bab
11785     1: b
11786     2: ab
11787    
11788    /\1|(.)(?R)\1/
11789        cbbbc
11790