/[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 353 by ph10, Mon Jul 7 15:44:24 2008 UTC revision 916 by ph10, Wed Feb 15 09:50:53 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 40  No match Line 50  No match
50    
51  /a+bc/I  /a+bc/I
52  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
53  No options  No options
54  First char = 'a'  First char = 'a'
55  Need char = 'c'  Need char = 'c'
56    
57  /a*bc/I  /a*bc/I
58  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
59  No options  No options
60  No first char  No first char
61  Need char = 'c'  Need char = 'c'
62    
63  /a{3}bc/I  /a{3}bc/I
64  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
65  No options  No options
66  First char = 'a'  First char = 'a'
67  Need char = 'c'  Need char = 'c'
68    
69  /(abc|a+z)/I  /(abc|a+z)/I
70  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
71  No options  No options
72  First char = 'a'  First char = 'a'
73  No need char  No need char
# Line 96  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 113  Failed: unrecognized character after (? Line 149  Failed: unrecognized character after (?
149    
150  /.*b/I  /.*b/I
151  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
152  No options  No options
153  First char at start or follows newline  First char at start or follows newline
154  Need char = 'b'  Need char = 'b'
155    
156  /.*?b/I  /.*?b/I
157  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
158  No options  No options
159  First char at start or follows newline  First char at start or follows newline
160  Need char = 'b'  Need char = 'b'
# Line 140  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 151  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 162  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 169  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 189  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 324  No need char Line 363  No need char
363    
364  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
365  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
366  No options  No options
367  First char at start or follows newline  First char at start or follows newline
368  No need char  No need char
# Line 338  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/IP  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/IP  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/IP  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/IP  
     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/IPi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/IP  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/IP  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/IP  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/IP  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
# Line 401  Failed: missing terminating ] for charac Line 384  Failed: missing terminating ] for charac
384    
385  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
386  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
387  No options  No options
388  No first char  No first char
389  No need char  No need char
# Line 410  No need char Line 392  No need char
392    
393  /<.*>/I  /<.*>/I
394  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
395  No options  No options
396  First char = '<'  First char = '<'
397  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 400  Need char = '>'
400    
401  /<.*?>/I  /<.*?>/I
402  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
403  No options  No options
404  First char = '<'  First char = '<'
405  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 408  Need char = '>'
408    
409  /<.*>/IU  /<.*>/IU
410  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
411  Options: ungreedy  Options: ungreedy
412  First char = '<'  First char = '<'
413  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 416  Need char = '>'
416    
417  /(?U)<.*>/I  /(?U)<.*>/I
418  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
419  Options: ungreedy  Options: ungreedy
420  First char = '<'  First char = '<'
421  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 424  Need char = '>'
424    
425  /<.*?>/IU  /<.*?>/IU
426  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
427  Options: ungreedy  Options: ungreedy
428  First char = '<'  First char = '<'
429  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 432  Need char = '>'
432    
433  /={3,}/IU  /={3,}/IU
434  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
435  Options: ungreedy  Options: ungreedy
436  First char = '='  First char = '='
437  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 440  Need char = '='
440    
441  /(?U)={3,}?/I  /(?U)={3,}?/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
443  Options: ungreedy  Options: ungreedy
444  First char = '='  First char = '='
445  Need char = '='  Need char = '='
# Line 522  No need char Line 497  No need char
497    
498  /(?s).*/I  /(?s).*/I
499  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
500  Options: anchored dotall  Options: anchored dotall
501  No first char  No first char
502  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 506  Capturing subpattern count = 0
506  No options  No options
507  No first char  No first char
508  No need char  No need char
509    Subject length lower bound = 1
510  Starting byte set: a b c d  Starting byte set: a b c d
511    
512  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 514  Capturing subpattern count = 0
514  Options: caseless  Options: caseless
515  No first char  No first char
516  No need char  No need char
517    Subject length lower bound = 1
518  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
519    
520  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 522  Capturing subpattern count = 1
522  Options: multiline  Options: multiline
523  No first char  No first char
524  No need char  No need char
525    Subject length lower bound = 1
526  Starting byte set: b c x y  Starting byte set: b c x y
527    
528  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 561  Failed: syntax error in subpattern name
561  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
562  Capturing subpattern count = 1  Capturing subpattern count = 1
563  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
564  No options  No options
565  First char = 'b'  First char = 'b'
566  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 568  Need char = 'h'
568  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
569  Capturing subpattern count = 1  Capturing subpattern count = 1
570  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
571  No options  No options
572  First char = 'b' (caseless)  First char = 'b' (caseless)
573  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 601  Need char = 'h' (caseless) Line 576  Need char = 'h' (caseless)
576  ------------------------------------------------------------------  ------------------------------------------------------------------
577          Bra          Bra
578          CBra 1          CBra 1
579       01 Opt       /i b
      NC b  
580          Ket          Ket
      00 Opt  
581          Ket          Ket
582          End          End
583  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 612  Capturing subpattern count = 1 Line 585  Capturing subpattern count = 1
585  No options  No options
586  First char = 'b' (caseless)  First char = 'b' (caseless)
587  No need char  No need char
588  Study returned NULL  Subject length lower bound = 1
589    No set of starting bytes
590    
591  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
592  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
593  No options  No options
594  No first char  No first char
595  No need char  No need char
596    Subject length lower bound = 1
597  Starting byte set: C a b c d  Starting byte set: C a b c d
598    
599  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 642  Need char = 'c'
642    
643  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
644  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
645  Options: anchored  Options: anchored
646  No first char  No first char
647  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 658  Capturing subpattern count = 0
658  No options  No options
659  No first char  No first char
660  No need char  No need char
661    Subject length lower bound = 1
662  Starting byte set: a b  Starting byte set: a b
663    
664  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 666  Capturing subpattern count = 1
666  No options  No options
667  No first char  No first char
668  Need char = 'a'  Need char = 'a'
669    Subject length lower bound = 5
670  Starting byte set: a o  Starting byte set: a o
671    
672  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 674  Capturing subpattern count = 0
674  No options  No options
675  No first char  No first char
676  No need char  No need char
677    Subject length lower bound = 1
678  Starting byte set: a b  Starting byte set: a b
679    
680  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 760  No need char
760    
761  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
762  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
763  No options  No options
764  First char at start or follows newline  First char at start or follows newline
765  No need char  No need char
# Line 854  No match Line 829  No match
829      a      a
830  No match  No match
831    
832  /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
833  Capturing subpattern count = 0  Capturing subpattern count = 0
834  No options  No options
835  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 841  Max back reference = 1
841  Options: anchored  Options: anchored
842  No first char  No first char
843  No need char  No need char
844        aaaa
845    No match
846      aaaaaa      aaaaaa
847   0: aaaaaa  No match
848   1: aa  
849    /Perl does not fail these two for the final subjects. Neither did PCRE until/
850    /release 8.01. The problem is in backtracking into a subpattern that contains/
851    No match
852    /a recursive reference to itself. PCRE has now made these into atomic patterns./
853    No match
854    
855    /^(xa|=?\1a){2}$/
856        xa=xaa
857     0: xa=xaa
858     1: =xaa
859        ** Failers
860    No match
861        xa=xaaa
862    No match
863    
864    /^(xa|=?\1a)+$/
865        xa=xaa
866     0: xa=xaa
867     1: =xaa
868        ** Failers
869    No match
870        xa=xaaa
871    No match
872    
873  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
874  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 975  Failed: numbers out of order in {} quant Line 975  Failed: numbers out of order in {} quant
975  /abc/\  /abc/\
976  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
977    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
978  /abc/\i  /abc/\i
979  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
980    
# Line 1003  copy substring 5 failed -7 Line 1000  copy substring 5 failed -7
1000    
1001  /(.{20})/I  /(.{20})/I
1002  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1003  No options  No options
1004  No first char  No first char
1005  No need char  No need char
# Line 1021  No need char Line 1017  No need char
1017    
1018  /(.{15})/I  /(.{15})/I
1019  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1020  No options  No options
1021  No first char  No first char
1022  No need char  No need char
# Line 1036  No need char Line 1031  No need char
1031    
1032  /(.{16})/I  /(.{16})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1034  No options  No options
1035  No first char  No first char
1036  No need char  No need char
# Line 1096  No first char Line 1090  No first char
1090  No need char  No need char
1091      abc\00def\L\C0      abc\00def\L\C0
1092   0: abc\x00def   0: abc\x00def
1093   0C abc (7)   0C abc\x00def (7)
1094   0L abc   0L abc
1095    
1096  /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]+
1097  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1098  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1099  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1100  Contains explicit CR or LF match  Contains explicit CR or LF match
1101  No options  No options
1102  First char = 'w'  First char = 'w'
# Line 1118  Need char = 'd' Line 1111  Need char = 'd'
1111          End          End
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1114  No options  No options
1115  First char at start or follows newline  First char at start or follows newline
1116  Need char = 'X'  Need char = 'X'
# Line 1132  Need char = 'X' Line 1124  Need char = 'X'
1124          End          End
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1127  Options: anchored dotall  Options: anchored dotall
1128  No first char  No first char
1129  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1142  Need char = 'X'
1142          End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1145  No options  No options
1146  First char at start or follows newline  First char at start or follows newline
1147  No need char  No need char
# Line 1170  No need char Line 1160  No need char
1160          End          End
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1163  Options: anchored dotall  Options: anchored dotall
1164  No first char  No first char
1165  No need char  No need char
# Line 1189  No need char Line 1178  No need char
1178          End          End
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1181  Options: anchored dotall  Options: anchored dotall
1182  No first char  No first char
1183  No need char  No need char
# Line 1198  No need char Line 1186  No need char
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187          Bra          Bra
1188          Bra          Bra
      04 Opt  
1189          AllAny*          AllAny*
1190          X          X
1191          Alt          Alt
      04 Opt  
1192          ^          ^
1193          B          B
1194          Ket          Ket
      00 Opt  
1195          Ket          Ket
1196          End          End
1197  ------------------------------------------------------------------  ------------------------------------------------------------------
1198  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1199  Options: anchored  Options: anchored
1200  No first char  No first char
1201  No need char  No need char
# Line 1225  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1296  No need char Line 1275  No need char
1275    
1276  /.*iss/Ig+  /.*iss/Ig+
1277  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1278  No options  No options
1279  First char at start or follows newline  First char at start or follows newline
1280  Need char = 's'  Need char = 's'
# Line 1360  Capturing subpattern count = 0 Line 1338  Capturing subpattern count = 0
1338  Contains explicit CR or LF match  Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows newline  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
# Line 1399  Need char = 'c' Line 1377  Need char = 'c'
1377    
1378  /a*/I  /a*/I
1379  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1380  No options  No options
1381  No first char  No first char
1382  No need char  No need char
1383    
1384  /a+/I  /a+/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1386  No options  No options
1387  First char = 'a'  First char = 'a'
1388  No need char  No need char
1389    
1390  /(baa|a+)/I  /(baa|a+)/I
1391  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1392  No options  No options
1393  No first char  No first char
1394  Need char = 'a'  Need char = 'a'
1395    
1396  /a{0,3}/I  /a{0,3}/I
1397  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1398  No options  No options
1399  No first char  No first char
1400  No need char  No need char
1401    
1402  /baa{3,}/I  /baa{3,}/I
1403  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1404  No options  No options
1405  First char = 'b'  First char = 'b'
1406  Need char = 'a'  Need char = 'a'
1407    
1408  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1409  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1410  No options  No options
1411  First char = '"'  First char = '"'
1412  Need char = '"'  Need char = '"'
# Line 1489  Need char = 'b' Line 1461  Need char = 'b'
1461    
1462  /abc*/I  /abc*/I
1463  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1464  No options  No options
1465  First char = 'a'  First char = 'a'
1466  Need char = 'b'  Need char = 'b'
1467    
1468  /ab.c*/I  /ab.c*/I
1469  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1470  No options  No options
1471  First char = 'a'  First char = 'a'
1472  Need char = 'b'  Need char = 'b'
1473    
1474  /a.c*/I  /a.c*/I
1475  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1476  No options  No options
1477  First char = 'a'  First char = 'a'
1478  No need char  No need char
1479    
1480  /.c*/I  /.c*/I
1481  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1482  No options  No options
1483  No first char  No first char
1484  No need char  No need char
1485    
1486  /ac*/I  /ac*/I
1487  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1488  No options  No options
1489  First char = 'a'  First char = 'a'
1490  No need char  No need char
1491    
1492  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1493  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1494  No options  No options
1495  No first char  No first char
1496  No need char  No need char
1497    
1498  /a.c*|aba/I  /a.c*|aba/I
1499  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1500  No options  No options
1501  First char = 'a'  First char = 'a'
1502  No need char  No need char
1503    
1504  /.+a/I  /.+a/I
1505  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1506  No options  No options
1507  No first char  No first char
1508  Need char = 'a'  Need char = 'a'
1509    
1510  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1512  No options  No options
1513  First char = 'a'  First char = 'a'
1514  Need char = 'a'  Need char = 'a'
1515    
1516  /(?=a)a.*/I  /(?=a)a.*/I
1517  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1518  No options  No options
1519  First char = 'a'  First char = 'a'
1520  No need char  No need char
# Line 1565  No need char Line 1527  No need char
1527    
1528  /a\d*/I  /a\d*/I
1529  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1530  No options  No options
1531  First char = 'a'  First char = 'a'
1532  No need char  No need char
1533    
1534  /ab\d*/I  /ab\d*/I
1535  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1536  No options  No options
1537  First char = 'a'  First char = 'a'
1538  Need char = 'b'  Need char = 'b'
# Line 1591  Need char = 'd' Line 1551  Need char = 'd'
1551    
1552  /ab\d+/I  /ab\d+/I
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1554  No options  No options
1555  First char = 'a'  First char = 'a'
1556  Need char = 'b'  Need char = 'b'
# Line 1666  No need char Line 1625  No need char
1625      \Nabc      \Nabc
1626  No match  No match
1627    
 /a*(b+)(z)(z)/IP  
     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  
   
1628  /^.?abcd/IS  /^.?abcd/IS
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  Options: anchored  Options: anchored
1631  No first char  No first char
1632  Need char = 'd'  Need char = 'd'
1633  Study returned NULL  Subject length lower bound = 4
1634    No set of starting bytes
1635    
1636  /\(             # ( at start  /\(             # ( at start
1637    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1709  Study returned NULL Line 1642  Study returned NULL
1642    \)            # Closing )    \)            # Closing )
1643    /Ix    /Ix
1644  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1645  Options: extended  Options: extended
1646  First char = '('  First char = '('
1647  Need char = ')'  Need char = ')'
# Line 1738  No match Line 1670  No match
1670    
1671  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1672  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1673  Options: extended  Options: extended
1674  First char = '('  First char = '('
1675  Need char = ')'  Need char = ')'
# Line 1753  Need char = ')' Line 1684  Need char = ')'
1684    
1685  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1686  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1687  Options: extended  Options: extended
1688  First char = '('  First char = '('
1689  Need char = ')'  Need char = ')'
# Line 1772  No match Line 1702  No match
1702    
1703  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1704  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1705  Options: extended  Options: extended
1706  First char = '('  First char = '('
1707  Need char = ')'  Need char = ')'
# Line 1783  Need char = ')' Line 1712  Need char = ')'
1712    
1713  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1714  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1715  Options: extended  Options: extended
1716  First char = '('  First char = '('
1717  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1721  Need char = ')'
1721    
1722  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1723  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
1726  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1731  Need char = ')'
1731    
1732  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1733  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1734  Options: extended  Options: extended
1735  First char = '('  First char = '('
1736  Need char = ')'  Need char = ')'
# Line 1821  Need char = ')' Line 1747  Need char = ')'
1747    
1748  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1749  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1750  Options: extended  Options: extended
1751  First char = '('  First char = '('
1752  Need char = ')'  Need char = ')'
# Line 1838  Need char = ')' Line 1763  Need char = ')'
1763    
1764  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1765  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
1768  Need char = ')'  Need char = ')'
# Line 1858  Need char = ')' Line 1782  Need char = ')'
1782    
1783  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1784  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1785  Options: extended  Options: extended
1786  First char = '('  First char = '('
1787  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1789  Need char = ')'
1789   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1790   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1791   2: 123   2: 123
  3: <unset>  
1792    
1793  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1794  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1795  Options: extended  Options: extended
1796  First char = '('  First char = '('
1797  Need char = ')'  Need char = ')'
# Line 1942  Capturing subpattern count = 0 Line 1863  Capturing subpattern count = 0
1863  No options  No options
1864  No first char  No first char
1865  No need char  No need char
1866    Subject length lower bound = 1
1867  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
1868    _ 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
1869    
# Line 2003  Contains explicit CR or LF match Line 1925  Contains explicit CR or LF match
1925  No options  No options
1926  No first char  No first char
1927  No need char  No need char
1928    Subject length lower bound = 1
1929  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1930    
1931  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2249  Need char = 'd' Line 2172  Need char = 'd'
2172  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2173  Capturing subpattern count = 271  Capturing subpattern count = 271
2174  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2175  No options  No options
2176  No first char  No first char
2177  No need char  No need char
# Line 2746  No need char Line 2668  No need char
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          a          a
2671       01 Opt       /i b
      NC b  
2672          Ket          Ket
2673          End          End
2674  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2769  No match Line 2690  No match
2690          Bra          Bra
2691          CBra 1          CBra 1
2692          a          a
2693       01 Opt       /i b
      NC b  
2694          Ket          Ket
      00 Opt  
2695          Ket          Ket
2696          End          End
2697  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2794  No match Line 2713  No match
2713  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715          Bra          Bra
2716       NC abc       /i abc
2717          Ket          Ket
2718          End          End
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2807  Need char = 'c' (caseless) Line 2726  Need char = 'c' (caseless)
2726    (?i)abc/IxDZ    (?i)abc/IxDZ
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728          Bra          Bra
2729       NC abc       /i abc
2730          Ket          Ket
2731          End          End
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2930  Need char = 'c' Line 2849  Need char = 'c'
2849          End          End
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2852  No options  No options
2853  No first char  No first char
2854  No need char  No need char
# Line 2959  No need char Line 2877  No need char
2877          End          End
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2880  No options  No options
2881  First char = 'x'  First char = 'x'
2882  No need char  No need char
# Line 2975  No need char Line 2892  No need char
2892          End          End
2893  ------------------------------------------------------------------  ------------------------------------------------------------------
2894  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2895  No options  No options
2896  First char = 'x'  First char = 'x'
2897  No need char  No need char
# Line 2983  No need char Line 2899  No need char
2899  /(x)*+/DZ  /(x)*+/DZ
2900  ------------------------------------------------------------------  ------------------------------------------------------------------
2901          Bra          Bra
2902          Once          Braposzero
2903          Brazero          CBraPos 1
         CBra 1  
2904          x          x
2905          KetRmax          KetRpos
         Ket  
2906          Ket          Ket
2907          End          End
2908  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2999  No need char Line 2913  No need char
2913    
2914  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2915  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2916  Options: anchored  Options: anchored
2917  No first char  No first char
2918  No need char  No need char
# Line 3013  No match Line 2926  No match
2926    
2927  /(\d++)(\w)/I  /(\d++)(\w)/I
2928  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2929  No options  No options
2930  No first char  No first char
2931  No need char  No need char
# Line 3028  No match Line 2940  No match
2940    
2941  /a++b/I  /a++b/I
2942  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2943  No options  No options
2944  First char = 'a'  First char = 'a'
2945  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 2948  Need char = 'b'
2948    
2949  /(a++b)/I  /(a++b)/I
2950  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2951  No options  No options
2952  First char = 'a'  First char = 'a'
2953  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 2957  Need char = 'b'
2957    
2958  /(a++)b/I  /(a++)b/I
2959  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2960  No options  No options
2961  First char = 'a'  First char = 'a'
2962  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 2966  Need char = 'b'
2966    
2967  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
2968  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2969  No options  No options
2970  No first char  No first char
2971  No need char  No need char
# Line 3067  No need char Line 2975  No need char
2975    
2976  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
2977  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2978  No options  No options
2979  First char = '('  First char = '('
2980  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3037  Failed: nothing to repeat at offset 7
3037          End          End
3038  ------------------------------------------------------------------  ------------------------------------------------------------------
3039  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3040  No options  No options
3041  First char = 'x'  First char = 'x'
3042  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3053  Need char = 'b'
3053          End          End
3054  ------------------------------------------------------------------  ------------------------------------------------------------------
3055  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3056  Options: ungreedy  Options: ungreedy
3057  First char = 'x'  First char = 'x'
3058  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3081  Need char = 'b'
3081          End          End
3082  ------------------------------------------------------------------  ------------------------------------------------------------------
3083  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3084  Options: anchored  Options: anchored
3085  No first char  No first char
3086  No need char  No need char
# Line 3192  No need char Line 3096  No need char
3096          End          End
3097  ------------------------------------------------------------------  ------------------------------------------------------------------
3098  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3099  Options: anchored  Options: anchored
3100  No first char  No first char
3101  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3113  Need char = 'b'
3113          End          End
3114  ------------------------------------------------------------------  ------------------------------------------------------------------
3115  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3116  Options: anchored  Options: anchored
3117  No first char  No first char
3118  Need char = 'b'  Need char = 'b'
# Line 3225  Failed: POSIX collating elements are not Line 3127  Failed: POSIX collating elements are not
3127  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
3128    
3129  /\l/I  /\l/I
3130  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
3131    
3132  /\L/I  /\L/I
3133  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
3134    
3135  /\N{name}/I  /\N{name}/I
3136  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
3137    
3138  /\u/I  /\u/I
3139  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
3140    
3141  /\U/I  /\U/I
3142  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
3143    
3144  /[/I  /[/I
3145  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3286  No need char Line 3188  No need char
3188    
3189  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3190  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3191  Options: extended  Options: extended
3192  First char = '<'  First char = '<'
3193  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3237  Need char = 'X'
3237  /(.*)\d+\1/I  /(.*)\d+\1/I
3238  Capturing subpattern count = 1  Capturing subpattern count = 1
3239  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3240  No options  No options
3241  No first char  No first char
3242  No need char  No need char
3243    
3244  /(.*)\d+/I  /(.*)\d+/I
3245  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3246  No options  No options
3247  First char at start or follows newline  First char at start or follows newline
3248  No need char  No need char
# Line 3351  No need char Line 3250  No need char
3250  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3251  Capturing subpattern count = 1  Capturing subpattern count = 1
3252  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3253  Options: dotall  Options: dotall
3254  No first char  No first char
3255  No need char  No need char
3256    
3257  /(.*)\d+/Is  /(.*)\d+/Is
3258  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3259  Options: anchored dotall  Options: anchored dotall
3260  No first char  No first char
3261  No need char  No need char
# Line 3366  No need char Line 3263  No need char
3263  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3264  Capturing subpattern count = 2  Capturing subpattern count = 2
3265  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3266  No options  No options
3267  First char at start or follows newline  First char at start or follows newline
3268  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3270  Need char = 'z'
3270  /((.*))\d+\1/I  /((.*))\d+\1/I
3271  Capturing subpattern count = 2  Capturing subpattern count = 2
3272  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3273  No options  No options
3274  No first char  No first char
3275  No need char  No need char
# Line 3391  Need char = 'b' Line 3286  Need char = 'b'
3286    
3287  /(?=a).*/I  /(?=a).*/I
3288  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3289  No options  No options
3290  First char = 'a'  First char = 'a'
3291  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3391  Capturing subpattern count = 0
3391  No options  No options
3392  No first char  No first char
3393  No need char  No need char
3394    Subject length lower bound = 1
3395  Starting byte set: a b  Starting byte set: a b
3396    
3397  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3411  Capturing subpattern count = 0
3411  No options  No options
3412  No first char  No first char
3413  Need char = '6'  Need char = '6'
3414    Subject length lower bound = 4
3415  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
3416    
3417  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3445  Capturing subpattern count = 0
3445  Options: caseless  Options: caseless
3446  No first char  No first char
3447  No need char  No need char
3448    Subject length lower bound = 1
3449  Starting byte set: A B a b  Starting byte set: A B a b
3450    
3451  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3453  Capturing subpattern count = 0
3453  No options  No options
3454  No first char  No first char
3455  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3456    Subject length lower bound = 3
3457  Starting byte set: a b  Starting byte set: a b
3458    
3459  /abc(?C)def/I  /abc(?C)def/I
# Line 3591  Need char = 'f' Line 3489  Need char = 'f'
3489    1    ^    ^     f    1    ^    ^     f
3490   0: abcdef   0: abcdef
3491    
3492  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    Need char = 'f'
3497    Subject length lower bound = 7
3498    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499        1234abcdef
3500    --->1234abcdef
3501      1 ^              \d
3502      1  ^             \d
3503      1   ^            \d
3504      1    ^           \d
3505      2    ^   ^       d
3506     0: 4abcdef
3507        *** Failers
3508    No match
3509        abcdef
3510    No match
3511    
3512    /(?C1)\dabc(?C2)def/ISS
3513  Capturing subpattern count = 0  Capturing subpattern count = 0
3514  No options  No options
3515  No first char  No first char
# Line 3713  No need char Line 3631  No need char
3631    
3632  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3633  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3634  No options  No options
3635  No first char  No first char
3636  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3759  Callout 0: last capture = 1
3759    
3760  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3761  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3762  No options  No options
3763  First char = 'a'  First char = 'a'
3764  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3784  No match
3784    
3785  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3786  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3787  No options  No options
3788  First char = 'a'  First char = 'a'
3789  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3824  Capturing subpattern count = 0
3824  No options  No options
3825  No first char  No first char
3826  No need char  No need char
3827    Subject length lower bound = 1
3828  Starting byte set: a b  Starting byte set: a b
3829    
3830  /(?R)/I  /(?R)/I
# Line 3997  Need char = '<' Line 3913  Need char = '<'
3913          Bra          Bra
3914          CBra 1          CBra 1
3915          a          a
         Once  
3916          Recurse          Recurse
         Ket  
3917          b          b
3918          Ket          Ket
3919          Ket          Ket
# Line 4028  No options Line 3942  No options
3942  First char = 'a'  First char = 'a'
3943  Need char = 'b'  Need char = 'b'
3944    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 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  
   
3945  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3946  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3947  Options: anchored  Options: anchored
3948  No first char  No first char
3949  No need char  No need char
# Line 4105  No match Line 3984  No match
3984    
3985  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
3986  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3987  Options: extended  Options: extended
3988  First char = '<'  First char = '<'
3989  Need char = '>'  Need char = '>'
# Line 4256  Need char = 'a' Line 4134  Need char = 'a'
4134          Any          Any
4135          \1          \1
4136          bbb          bbb
         Once  
4137          Recurse          Recurse
         Ket  
4138          d          d
4139          Ket          Ket
4140          End          End
# Line 4279  Named capturing subpatterns: Line 4155  Named capturing subpatterns:
4155    one     1    one     1
4156    three   3    three   3
4157    two     2    two     2
 Partial matching not supported  
4158  Options: anchored caseless  Options: anchored caseless
4159  No first char  No first char
4160  No need char  No need char
# Line 4325  No need char Line 4200  No need char
4200    
4201  /(.*)a/Is  /(.*)a/Is
4202  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4203  Options: anchored dotall  Options: anchored dotall
4204  No first char  No first char
4205  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4207  Need char = 'a'
4207  /(.*)a\1/Is  /(.*)a\1/Is
4208  Capturing subpattern count = 1  Capturing subpattern count = 1
4209  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4210  Options: dotall  Options: dotall
4211  No first char  No first char
4212  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4214  Need char = 'a'
4214  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4215  Capturing subpattern count = 2  Capturing subpattern count = 2
4216  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4217  Options: anchored dotall  Options: anchored dotall
4218  No first char  No first char
4219  Need char = 'b'  Need char = 'b'
4220    
4221  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4222  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4223  Options: anchored dotall  Options: anchored dotall
4224  No first char  No first char
4225  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4227  Need char = 'z'
4227  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4228  Capturing subpattern count = 3  Capturing subpattern count = 3
4229  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4230  Options: dotall  Options: dotall
4231  No first char  No first char
4232  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4234  Need char = 'z'
4234  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4235  Capturing subpattern count = 3  Capturing subpattern count = 3
4236  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4237  Options: dotall  Options: dotall
4238  No first char  No first char
4239  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4241  Need char = 'z'
4241  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4242  Capturing subpattern count = 3  Capturing subpattern count = 3
4243  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4244  Options: dotall  Options: dotall
4245  No first char  No first char
4246  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4248  Need char = 'z'
4248  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4249  Capturing subpattern count = 3  Capturing subpattern count = 3
4250  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4251  Options: anchored dotall  Options: anchored dotall
4252  No first char  No first char
4253  Need char = 'z'  Need char = 'z'
4254    
4255  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4256  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4257  Options: anchored dotall  Options: anchored dotall
4258  No first char  No first char
4259  No need char  No need char
# Line 4395  No need char Line 4261  No need char
4261  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4262  Capturing subpattern count = 31  Capturing subpattern count = 31
4263  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4264  Options: dotall  Options: dotall
4265  No first char  No first char
4266  No need char  No need char
# Line 4403  No need char Line 4268  No need char
4268  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4269  Capturing subpattern count = 32  Capturing subpattern count = 32
4270  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4271  Options: dotall  Options: dotall
4272  No first char  No first char
4273  No need char  No need char
# Line 4470  Need char = 'c' Line 4334  Need char = 'c'
4334    
4335  /(a+)*zz/I  /(a+)*zz/I
4336  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4337  No options  No options
4338  No first char  No first char
4339  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4470  Failed: two named subpatterns have the s
4470  Capturing subpattern count = 3  Capturing subpattern count = 3
4471  Named capturing subpatterns:  Named capturing subpatterns:
4472    elem   2    elem   2
 Partial matching not supported  
4473  No options  No options
4474  First char = '['  First char = '['
4475  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4487  No match
4487  Capturing subpattern count = 3  Capturing subpattern count = 3
4488  Named capturing subpatterns:  Named capturing subpatterns:
4489    elem   2    elem   2
 Partial matching not supported  
4490  No options  No options
4491  First char = '['  First char = '['
4492  Need char = ']'  Need char = ']'
# Line 4645  Need char = ']' Line 4506  Need char = ']'
4506          a          a
4507          CBra 2          CBra 2
4508          b          b
         Once  
4509          Recurse          Recurse
         Ket  
4510          c          c
4511          Ket          Ket
4512          Ket          Ket
# Line 4667  No need char Line 4526  No need char
4526          a          a
4527          CBra 2          CBra 2
4528          b          b
         Once  
4529          Recurse          Recurse
         Ket  
4530          c          c
4531          Ket          Ket
4532          KetRmax          KetRmax
# Line 4690  No need char Line 4547  No need char
4547          a          a
4548          CBra 2          CBra 2
4549          b          b
         Once  
4550          Recurse          Recurse
         Ket  
4551          c          c
4552          Ket          Ket
4553          Ket          Ket
# Line 4701  No need char Line 4556  No need char
4556          a          a
4557          CBra 2          CBra 2
4558          b          b
         Once  
4559          Recurse          Recurse
         Ket  
4560          c          c
4561          Ket          Ket
4562          Ket          Ket
# Line 4732  No need char Line 4585  No need char
4585    
4586  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4587  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4588  Options: caseless  Options: caseless
4589  No first char  No first char
4590  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4594  Need char = 'g' (caseless)
4594    
4595  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4596  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4597  Options: caseless  Options: caseless
4598  No first char  No first char
4599  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4600  Study returned NULL  Subject length lower bound = 8
4601    No set of starting bytes
4602       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4603   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4604   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4613  Study returned NULL
4613          End          End
4614  ------------------------------------------------------------------  ------------------------------------------------------------------
4615  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4616  No options  No options
4617  No first char  No first char
4618  Need char = 'b'  Need char = 'b'
4619  Study returned NULL  Subject length lower bound = 1
4620    No set of starting bytes
4621    
4622  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4623  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4637  Capturing subpattern count = 1
4637  No options  No options
4638  No first char  No first char
4639  Need char = 'c'  Need char = 'c'
4640  Study returned NULL  Subject length lower bound = 1
4641    No set of starting bytes
4642    
4643  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4644  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4842  Need char = 'e' Line 4695  Need char = 'e'
4695   +4 ^   ^      e   +4 ^   ^      e
4696  No match  No match
4697    
4698  /a*b/ICDZ  /a*b/ICDZS
4699    ------------------------------------------------------------------
4700            Bra
4701            Callout 255 0 2
4702            a*+
4703            Callout 255 2 1
4704            b
4705            Callout 255 3 0
4706            Ket
4707            End
4708    ------------------------------------------------------------------
4709    Capturing subpattern count = 0
4710    Options:
4711    No first char
4712    Need char = 'b'
4713    Subject length lower bound = 1
4714    Starting byte set: a b
4715      ab
4716    --->ab
4717     +0 ^      a*
4718     +2 ^^     b
4719     +3 ^ ^
4720     0: ab
4721      aaaab
4722    --->aaaab
4723     +0 ^         a*
4724     +2 ^   ^     b
4725     +3 ^    ^
4726     0: aaaab
4727      aaaacb
4728    --->aaaacb
4729     +0 ^          a*
4730     +2 ^   ^      b
4731     +0  ^         a*
4732     +2  ^  ^      b
4733     +0   ^        a*
4734     +2   ^ ^      b
4735     +0    ^       a*
4736     +2    ^^      b
4737     +0      ^     a*
4738     +2      ^     b
4739     +3      ^^
4740     0: b
4741    
4742    /a*b/ICDZSS
4743  ------------------------------------------------------------------  ------------------------------------------------------------------
4744          Bra          Bra
4745          Callout 255 0 2          Callout 255 0 2
# Line 4854  No match Line 4751  No match
4751          End          End
4752  ------------------------------------------------------------------  ------------------------------------------------------------------
4753  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4754  Options:  Options:
4755  No first char  No first char
4756  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4795  Need char = 'b'
4795          End          End
4796  ------------------------------------------------------------------  ------------------------------------------------------------------
4797  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4798  Options:  Options:
4799  First char = 'a'  First char = 'a'
4800  Need char = 'b'  Need char = 'b'
# Line 4927  Need char = 'b' Line 4822  Need char = 'b'
4822   +2    ^^      b   +2    ^^      b
4823  No match  No match
4824    
4825  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4826  ------------------------------------------------------------------  ------------------------------------------------------------------
4827          Bra          Bra
4828          Callout 255 0 9          Callout 255 0 9
# Line 4958  Capturing subpattern count = 1 Line 4853  Capturing subpattern count = 1
4853  Options:  Options:
4854  No first char  No first char
4855  Need char = 'x'  Need char = 'x'
4856    Subject length lower bound = 4
4857    Starting byte set: a d
4858    abcx    abcx
4859  --->abcx  --->abcx
4860   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4981  Need char = 'x' Line 4878  Need char = 'x'
4878  +10 ^   ^  +10 ^   ^
4879   0: defx   0: defx
4880   1: def   1: def
4881      ** Failers
4882    No match
4883    abcdefzx    abcdefzx
4884  --->abcdefzx  --->abcdefzx
4885   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4990  Need char = 'x' Line 4889  Need char = 'x'
4889   +4 ^  ^         |   +4 ^  ^         |
4890   +9 ^  ^         x   +9 ^  ^         x
4891   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4892   +0    ^         (abc|def)   +0    ^         (abc|def)
4893   +1    ^         a   +1    ^         a
4894   +5    ^         d   +5    ^         d
# Line 5003  Need char = 'x' Line 4896  Need char = 'x'
4896   +7    ^ ^       f   +7    ^ ^       f
4897   +8    ^  ^      )   +8    ^  ^      )
4898   +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  
4899  No match  No match
4900    
4901  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4902    ------------------------------------------------------------------
4903            Bra
4904            Callout 255 0 9
4905            CBra 1
4906            Callout 255 1 1
4907            a
4908            Callout 255 2 1
4909            b
4910            Callout 255 3 1
4911            c
4912            Callout 255 4 0
4913            Alt
4914            Callout 255 5 1
4915            d
4916            Callout 255 6 1
4917            e
4918            Callout 255 7 1
4919            f
4920            Callout 255 8 0
4921            Ket
4922            Callout 255 9 1
4923            x
4924            Callout 255 10 0
4925            Ket
4926            End
4927    ------------------------------------------------------------------
4928  Capturing subpattern count = 1  Capturing subpattern count = 1
4929  Options:  Options:
4930  No first char  No first char
4931  No need char  Need char = 'x'
4932    ababab    abcx
4933  --->ababab  --->abcx
4934   +0 ^          (ab|cd){3,4}   +0 ^        (abc|def)
4935   +1 ^          a   +1 ^        a
4936   +2 ^^         b   +2 ^^       b
4937   +3 ^ ^        |   +3 ^ ^      c
4938   +1 ^ ^        a   +4 ^  ^     |
4939   +2 ^  ^       b   +9 ^  ^     x
4940   +3 ^   ^      |  +10 ^   ^
4941   +1 ^   ^      a   0: abcx
4942   +2 ^    ^     b   1: abc
4943   +3 ^     ^    |    defx
4944    --->defx
4945     +0 ^        (abc|def)
4946     +1 ^        a
4947     +5 ^        d
4948     +6 ^^       e
4949     +7 ^ ^      f
4950     +8 ^  ^     )
4951     +9 ^  ^     x
4952    +10 ^   ^
4953     0: defx
4954     1: def
4955      ** Failers
4956    No match
4957      abcdefzx
4958    --->abcdefzx
4959     +0 ^            (abc|def)
4960     +1 ^            a
4961     +2 ^^           b
4962     +3 ^ ^          c
4963     +4 ^  ^         |
4964     +9 ^  ^         x
4965     +5 ^            d
4966     +0  ^           (abc|def)
4967     +1  ^           a
4968     +5  ^           d
4969     +0   ^          (abc|def)
4970     +1   ^          a
4971     +5   ^          d
4972     +0    ^         (abc|def)
4973     +1    ^         a
4974     +5    ^         d
4975     +6    ^^        e
4976     +7    ^ ^       f
4977     +8    ^  ^      )
4978     +9    ^  ^      x
4979     +0     ^        (abc|def)
4980     +1     ^        a
4981     +5     ^        d
4982     +0      ^       (abc|def)
4983     +1      ^       a
4984     +5      ^       d
4985     +0       ^      (abc|def)
4986     +1       ^      a
4987     +5       ^      d
4988     +0        ^     (abc|def)
4989     +1        ^     a
4990     +5        ^     d
4991    No match
4992    
4993    /(ab|cd){3,4}/IC
4994    Capturing subpattern count = 1
4995    Options:
4996    No first char
4997    No need char
4998      ababab
4999    --->ababab
5000     +0 ^          (ab|cd){3,4}
5001     +1 ^          a
5002     +2 ^^         b
5003     +3 ^ ^        |
5004     +1 ^ ^        a
5005     +2 ^  ^       b
5006     +3 ^   ^      |
5007     +1 ^   ^      a
5008     +2 ^    ^     b
5009     +3 ^     ^    |
5010   +1 ^     ^    a   +1 ^     ^    a
5011   +4 ^     ^    c   +4 ^     ^    c
5012  +12 ^     ^  +12 ^     ^
# Line 5081  No need char Line 5054  No need char
5054   0: abcdcdcd   0: abcdcdcd
5055   1: cd   1: cd
5056    
5057  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5058    ------------------------------------------------------------------
5059            Bra
5060            Callout 255 0 14
5061            CBra 1
5062            Callout 255 1 4
5063            [ab]
5064            Callout 255 5 1
5065            {
5066            Callout 255 6 1
5067            ,
5068            Callout 255 7 1
5069            4
5070            Callout 255 8 1
5071            }
5072            Callout 255 9 1
5073            c
5074            Callout 255 10 0
5075            Alt
5076            Callout 255 11 1
5077            x
5078            Callout 255 12 1
5079            y
5080            Callout 255 13 0
5081            Ket
5082            Callout 255 14 0
5083            Ket
5084            End
5085    ------------------------------------------------------------------
5086    Capturing subpattern count = 1
5087    Options:
5088    No first char
5089    No need char
5090    Subject length lower bound = 2
5091    Starting byte set: a b x
5092        Note: that { does NOT introduce a quantifier
5093    --->Note: that { does NOT introduce a quantifier
5094     +0         ^                                        ([ab]{,4}c|xy)
5095     +1         ^                                        [ab]
5096     +5         ^^                                       {
5097    +11         ^                                        x
5098     +0                                 ^                ([ab]{,4}c|xy)
5099     +1                                 ^                [ab]
5100     +5                                 ^^               {
5101    +11                                 ^                x
5102     +0                                     ^            ([ab]{,4}c|xy)
5103     +1                                     ^            [ab]
5104     +5                                     ^^           {
5105    +11                                     ^            x
5106    No match
5107    
5108    /([ab]{,4}c|xy)/ICDZSS
5109  ------------------------------------------------------------------  ------------------------------------------------------------------
5110          Bra          Bra
5111          Callout 255 0 14          Callout 255 0 14
# Line 5337  No match Line 5361  No match
5361          End          End
5362  ------------------------------------------------------------------  ------------------------------------------------------------------
5363  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5364  Options:  Options:
5365  No first char  No first char
5366  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5392  Need char = '3'
5392    
5393  /\b.*/I  /\b.*/I
5394  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5395  No options  No options
5396  No first char  No first char
5397  No need char  No need char
# Line 5378  No need char Line 5400  No need char
5400    
5401  /\b.*/Is  /\b.*/Is
5402  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5403  Options: dotall  Options: dotall
5404  No first char  No first char
5405  No need char  No need char
# Line 5387  No need char Line 5408  No need char
5408    
5409  /(?!.bcd).*/I  /(?!.bcd).*/I
5410  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5411  No options  No options
5412  No first char  No first char
5413  No need char  No need char
# Line 5400  No options Line 5420  No options
5420  First char = 'a'  First char = 'a'
5421  Need char = 'e'  Need char = 'e'
5422      ab\P      ab\P
5423  Partial match  Partial match: ab
5424      abc\P      abc\P
5425  Partial match  Partial match: abc
5426      abcd\P      abcd\P
5427  Partial match  Partial match: abcd
5428      abcde\P      abcde\P
5429   0: abcde   0: abcde
5430      the quick brown abc\P      the quick brown abc\P
5431  Partial match  Partial match: abc
5432      ** Failers\P      ** Failers\P
5433  No match  No match
5434      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5453  Need char = '/'
5453   1: 02   1: 02
5454   2: 05   2: 05
5455      1\P      1\P
5456  Partial match  Partial match: 1
5457      1/2\P      1/2\P
5458  Partial match  Partial match: 1/2
5459      1/2/0\P      1/2/0\P
5460  Partial match  Partial match: 1/2/0
5461      1/2/04\P      1/2/04\P
5462   0: 1/2/04   0: 1/2/04
5463   1: 1   1: 1
5464   2: 2   2: 2
5465      0\P      0\P
5466  Partial match  Partial match: 0
5467      02/\P      02/\P
5468  Partial match  Partial match: 02/
5469      02/0\P      02/0\P
5470  Partial match  Partial match: 02/0
5471      02/1\P      02/1\P
5472  Partial match  Partial match: 02/1
5473      ** Failers\P      ** Failers\P
5474  No match  No match
5475      \P      \P
# Line 5471  No match Line 5491  No match
5491    
5492  /0{0,2}ABC/I  /0{0,2}ABC/I
5493  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5494  No options  No options
5495  No first char  No first char
5496  Need char = 'C'  Need char = 'C'
5497    
5498  /\d{3,}ABC/I  /\d{3,}ABC/I
5499  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5500  No options  No options
5501  No first char  No first char
5502  Need char = 'C'  Need char = 'C'
5503    
5504  /\d*ABC/I  /\d*ABC/I
5505  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5506  No options  No options
5507  No first char  No first char
5508  Need char = 'C'  Need char = 'C'
5509    
5510  /[abc]+DE/I  /[abc]+DE/I
5511  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5512  No options  No options
5513  No first char  No first char
5514  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5521  Need char = '3'
5521      123\P      123\P
5522   0: 123   0: 123
5523      a\P      a\P
5524  Partial match  Partial match: a
5525      b\P      b\P
5526  Partial match  Partial match: b
5527      c\P      c\P
5528  Partial match  Partial match: c
5529      c12\P      c12\P
5530  Partial match  Partial match: c12
5531      c123\P      c123\P
5532   0: c123   0: c123
5533    
# Line 5521  Options: anchored Line 5537  Options: anchored
5537  No first char  No first char
5538  Need char = 'X'  Need char = 'X'
5539      1\P      1\P
5540  Partial match  Partial match: 1
5541      123\P      123\P
5542  Partial match  Partial match: 123
5543      123X      123X
5544   0: 123X   0: 123X
5545      1234\P      1234\P
5546  Partial match  Partial match: 1234
5547      1234X      1234X
5548   0: 1234X   0: 1234X
5549      12345\P      12345\P
5550  Partial match  Partial match: 12345
5551      12345X      12345X
5552   0: 12345X   0: 12345X
5553      *** Failers      *** Failers
# Line 5541  No match Line 5557  No match
5557      123456\P      123456\P
5558  No match  No match
5559    
5560  /abc/I>testsavedregex  /abc/IS>testsavedregex
5561    Capturing subpattern count = 0
5562    No options
5563    First char = 'a'
5564    Need char = 'c'
5565    Subject length lower bound = 3
5566    No set of starting bytes
5567    Compiled pattern written to testsavedregex
5568    Study data written to testsavedregex
5569    <testsavedregex
5570    Compiled pattern loaded from testsavedregex
5571    Study data loaded from testsavedregex
5572        abc
5573     0: abc
5574        ** Failers
5575    No match
5576        bca
5577    No match
5578    
5579    /abc/ISS>testsavedregex
5580  Capturing subpattern count = 0  Capturing subpattern count = 0
5581  No options  No options
5582  First char = 'a'  First char = 'a'
5583  Need char = 'c'  Need char = 'c'
5584  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5585  <testsavedregex  <testsavedregex
5586  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5587  No study data  No study data
5588      abc      abc
5589   0: abc   0: abc
# Line 5557  No match Line 5592  No match
5592      bca      bca
5593  No match  No match
5594    
5595  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5596    Capturing subpattern count = 0
5597    No options
5598    First char = 'a'
5599    Need char = 'c'
5600    Subject length lower bound = 3
5601    No set of starting bytes
5602    Compiled pattern written to testsavedregex
5603    Study data written to testsavedregex
5604    <testsavedregex
5605    Compiled pattern (byte-inverted) loaded from testsavedregex
5606    Study data loaded from testsavedregex
5607        abc
5608     0: abc
5609        ** Failers
5610    No match
5611        bca
5612    No match
5613    
5614    /abc/IFSS>testsavedregex
5615  Capturing subpattern count = 0  Capturing subpattern count = 0
5616  No options  No options
5617  First char = 'a'  First char = 'a'
5618  Need char = 'c'  Need char = 'c'
5619  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5620  <testsavedregex  <testsavedregex
5621  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5622  No study data  No study data
5623      abc      abc
5624   0: abc   0: abc
# Line 5578  Capturing subpattern count = 1 Line 5632  Capturing subpattern count = 1
5632  No options  No options
5633  No first char  No first char
5634  No need char  No need char
5635    Subject length lower bound = 1
5636  Starting byte set: a b  Starting byte set: a b
5637  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5638  Study data written to testsavedregex  Study data written to testsavedregex
5639  <testsavedregex  <testsavedregex
5640  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5641  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5642      abc      abc
5643   0: a   0: a
# Line 5593  Study data loaded from testsavedregex Line 5648  Study data loaded from testsavedregex
5648      def      def
5649  No match  No match
5650    
5651    /(a|b)/ISS>testsavedregex
5652    Capturing subpattern count = 1
5653    No options
5654    No first char
5655    No need char
5656    Compiled pattern written to testsavedregex
5657    <testsavedregex
5658    Compiled pattern loaded from testsavedregex
5659    No study data
5660        abc
5661     0: a
5662     1: a
5663        ** Failers
5664     0: a
5665     1: a
5666        def
5667    No match
5668    
5669  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5670  Capturing subpattern count = 1  Capturing subpattern count = 1
5671  No options  No options
5672  No first char  No first char
5673  No need char  No need char
5674    Subject length lower bound = 1
5675  Starting byte set: a b  Starting byte set: a b
5676  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5677  Study data written to testsavedregex  Study data written to testsavedregex
5678  <testsavedregex  <testsavedregex
5679  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5680  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5681      abc      abc
5682   0: a   0: a
# Line 5613  Study data loaded from testsavedregex Line 5687  Study data loaded from testsavedregex
5687      def      def
5688  No match  No match
5689    
5690    /(a|b)/ISSF>testsavedregex
5691    Capturing subpattern count = 1
5692    No options
5693    No first char
5694    No need char
5695    Compiled pattern written to testsavedregex
5696    <testsavedregex
5697    Compiled pattern (byte-inverted) loaded from testsavedregex
5698    No study data
5699        abc
5700     0: a
5701     1: a
5702        ** Failers
5703     0: a
5704     1: a
5705        def
5706    No match
5707    
5708  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5709  Capturing subpattern count = 3  Capturing subpattern count = 3
5710  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5711  Options: multiline dotall  Options: multiline dotall
5712  First char = '<'  First char = '<'
5713  Need char = '>'  Need char = '>'
5714      <!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>
5715   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>
5716   1: seite   1: seite
5717   2: \x0a   2: \x0a
# Line 5669  No match Line 5760  No match
5760      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5761  No match  No match
5762    
 /ab.cd/IP  
     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/IPs  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5763  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5764  Capturing subpattern count = 0  Capturing subpattern count = 0
5765  No options  No options
# Line 5923  Matched, but too many substrings Line 5996  Matched, but too many substrings
5996    
5997  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5998  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5999  No options  No options
6000  No first char  No first char
6001  No need char  No need char
# Line 5936  No need char Line 6008  No need char
6008    
6009  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6010  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6011  No options  No options
6012  No first char  No first char
6013  No need char  No need char
# Line 5947  No need char Line 6018  No need char
6018    
6019  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6020  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6021  No options  No options
6022  No first char  No first char
6023  No need char  No need char
# Line 5958  No need char Line 6028  No need char
6028    
6029  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6030  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6031  No options  No options
6032  No first char  No first char
6033  No need char  No need char
# Line 5971  No need char Line 6040  No need char
6040    
6041  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6042  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6043  No options  No options
6044  No first char  No first char
6045  No need char  No need char
# Line 5984  No need char Line 6052  No need char
6052      ((this))      ((this))
6053   0: ((this))   0: ((this))
6054    
 /a(b)c/IPN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/IPN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6055  /\x{0000ff}/I  /\x{0000ff}/I
6056  Capturing subpattern count = 0  Capturing subpattern count = 0
6057  No options  No options
6058  First char = 255  First char = \xff
6059  No need char  No need char
6060    
6061  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6108  no parentheses with name "Z" Line 6165  no parentheses with name "Z"
6165   0: a1   0: a1
6166   1: a1   1: a1
6167   2: a1   2: a1
6168  copy substring Z failed -7  get substring Z failed -7
6169    G a1 (2) A    G a1 (2) A
6170    
6171  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6140  No need char Line 6197  No need char
6197    G a (1) A    G a (1) A
6198      cd\GA      cd\GA
6199   0: cd   0: cd
6200  copy substring A failed -7  get substring A failed -7
6201    
6202  /^(?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
6203  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6308  No need char Line 6365  No need char
6365   9:   9:
6366  10: Y  10: Y
6367    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6368  /\s*,\s*/IS  /\s*,\s*/IS
6369  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6370  No options  No options
6371  No first char  No first char
6372  Need char = ','  Need char = ','
6373    Subject length lower bound = 1
6374  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6375      \x0b,\x0b      \x0b,\x0b
6376   0: ,   0: ,
# Line 6443  Unknown newline type at: <bad> Line 6497  Unknown newline type at: <bad>
6497    
6498  /.*/I<lf>  /.*/I<lf>
6499  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6500  Options:  Options:
6501  Forced newline sequence: LF  Forced newline sequence: LF
6502  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6522  No need char
6522    
6523  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6524  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6525  Options: dotall  Options: dotall
6526  No first char  No first char
6527  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6538  Need char = 'f'
6538    
6539  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6540  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6541  No options  No options
6542  No first char  No first char
6543  No need char  No need char
# Line 6621  No need char Line 6672  No need char
6672    
6673  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6674  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6675  No options  No options
6676  No first char  No first char
6677  No need char  No need char
6678    Subject length lower bound = 1
6679  Starting byte set: C a b c d  Starting byte set: C a b c d
6680    
6681  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6683  Capturing subpattern count = 1
6683  No options  No options
6684  No first char  No first char
6685  Need char = 'z'  Need char = 'z'
6686    Subject length lower bound = 4
6687  Starting byte set: a b  Starting byte set: a b
6688    
6689  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6691  Capturing subpattern count = 1
6691  No options  No options
6692  No first char  No first char
6693  Need char = 'z'  Need char = 'z'
6694    Subject length lower bound = 4
6695  Starting byte set: a b  Starting byte set: a b
6696    
6697  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6699  Capturing subpattern count = 1
6699  No options  No options
6700  No first char  No first char
6701  Need char = 'z'  Need char = 'z'
6702    Subject length lower bound = 4
6703  Starting byte set: a b c  Starting byte set: a b c
6704    
6705  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6707  Capturing subpattern count = 1
6707  No options  No options
6708  No first char  No first char
6709  Need char = 'z'  Need char = 'z'
6710    Subject length lower bound = 4
6711  Starting byte set: a b c  Starting byte set: a b c
6712    
6713  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6715  Capturing subpattern count = 1
6715  No options  No options
6716  No first char  No first char
6717  Need char = 'z'  Need char = 'z'
6718    Subject length lower bound = 4
6719  Starting byte set: a b c d  Starting byte set: a b c d
6720    
6721  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6723  Capturing subpattern count = 1
6723  No options  No options
6724  No first char  No first char
6725  Need char = 'z'  Need char = 'z'
6726    Subject length lower bound = 4
6727  Starting byte set: a b c d  Starting byte set: a b c d
6728    
6729  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6737  Starting byte set: a b c d
6737          End          End
6738  ------------------------------------------------------------------  ------------------------------------------------------------------
6739  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6740  Options: anchored  Options: anchored
6741  No first char  No first char
6742  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6752  Need char = 'b'
6752          End          End
6753  ------------------------------------------------------------------  ------------------------------------------------------------------
6754  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6755  Options: anchored  Options: anchored
6756  No first char  No first char
6757  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6767  Need char = 'b'
6767          End          End
6768  ------------------------------------------------------------------  ------------------------------------------------------------------
6769  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6770  Options: anchored  Options: anchored
6771  No first char  No first char
6772  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6782  Need char = 'b'
6782          End          End
6783  ------------------------------------------------------------------  ------------------------------------------------------------------
6784  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6785  Options: anchored  Options: anchored
6786  No first char  No first char
6787  Need char = 'A'  Need char = 'A'
# Line 6743  No match Line 6796  No match
6796  ------------------------------------------------------------------  ------------------------------------------------------------------
6797          Bra          Bra
6798          ^          ^
6799          a*       /i a*
6800       NC A       /i A
6801          \d          \d
6802          Ket          Ket
6803          End          End
6804  ------------------------------------------------------------------  ------------------------------------------------------------------
6805  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6806  Options: anchored caseless  Options: anchored caseless
6807  No first char  No first char
6808  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6813  Need char = 'A' (caseless)
6813    
6814  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6815  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6816  No options  No options
6817  No first char  No first char
6818  No need char  No need char
6819    Subject length lower bound = 1
6820  Starting byte set: a b c d  Starting byte set: a b c d
6821    
6822  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6823  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6824  No options  No options
6825  No first char  No first char
6826  No need char  No need char
6827    Subject length lower bound = 1
6828  Starting byte set: a b c d  Starting byte set: a b c d
6829    
6830  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6831  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6832  No options  No options
6833  No first char  No first char
6834  No need char  No need char
6835    Subject length lower bound = 1
6836  Starting byte set: a b c d  Starting byte set: a b c d
6837    
6838  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6839  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6840  No options  No options
6841  No first char  No first char
6842  No need char  No need char
6843    Subject length lower bound = 2
6844  Starting byte set: a b  Starting byte set: a b
6845    
6846  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7373  Matched, but too many substrings Line 7425  Matched, but too many substrings
7425  /[^a]+a/BZi  /[^a]+a/BZi
7426  ------------------------------------------------------------------  ------------------------------------------------------------------
7427          Bra          Bra
7428          [^A]++       /i [^a]++
7429       NC a       /i a
7430          Ket          Ket
7431          End          End
7432  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7382  Matched, but too many substrings Line 7434  Matched, but too many substrings
7434  /[^a]+A/BZi  /[^a]+A/BZi
7435  ------------------------------------------------------------------  ------------------------------------------------------------------
7436          Bra          Bra
7437          [^A]++       /i [^a]++
7438       NC A       /i A
7439          Ket          Ket
7440          End          End
7441  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7578  No match Line 7630  No match
7630  ------------------------------------------------------------------  ------------------------------------------------------------------
7631          Bra          Bra
7632          ^          ^
         Once  
7633          Recurse          Recurse
         Ket  
7634          [()]          [()]
7635          CBra 1          CBra 1
7636          Ket          Ket
# Line 7594  No match Line 7644  No match
7644          ^          ^
7645          CBra 1          CBra 1
7646          Cond          Cond
7647        2 Cond ref        2 Cond nref
7648          y          y
7649          Ket          Ket
7650          [()]          [()]
# Line 7614  No match Line 7664  No match
7664  ------------------------------------------------------------------  ------------------------------------------------------------------
7665          Bra          Bra
7666          ^          ^
         Once  
7667          Recurse          Recurse
         Ket  
7668          ()          ()
7669          CBra 1          CBra 1
7670          Ket          Ket
# Line 7628  No match Line 7676  No match
7676  ------------------------------------------------------------------  ------------------------------------------------------------------
7677          Bra          Bra
7678          ^          ^
         Once  
7679          Recurse          Recurse
         Ket  
7680          [(\]a]          [(\]a]
7681          CBra 1          CBra 1
7682          Ket          Ket
# Line 7643  No match Line 7689  No match
7689  ------------------------------------------------------------------  ------------------------------------------------------------------
7690          Bra          Bra
7691          ^          ^
         Once  
7692          Recurse          Recurse
         Ket  
7693          CBra 1          CBra 1
7694          Ket          Ket
7695          Ket          Ket
# Line 7660  Named capturing subpatterns: Line 7704  Named capturing subpatterns:
7704    one     1    one     1
7705    three   3    three   3
7706    two     2    two     2
 Partial matching not supported  
7707  Options: anchored caseless  Options: anchored caseless
7708  No first char  No first char
7709  No need char  No need char
# Line 7694  No match Line 7737  No match
7737  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7738  Capturing subpattern count = 1  Capturing subpattern count = 1
7739  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7740  No options  No options
7741  No first char  No first char
7742  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7749  Capturing subpattern count = 1
7749  Max back reference = 1  Max back reference = 1
7750  Named capturing subpatterns:  Named capturing subpatterns:
7751    abc   1    abc   1
 Partial matching not supported  
7752  No options  No options
7753  No first char  No first char
7754  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7756  Need char = ':'
7756   0: abcd:   0: abcd:
7757   1: abcd   1: abcd
7758    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7759  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7760      adaa      adaa
7761   0: adaa   0: adaa
# Line 7755  No match Line 7782  No match
7782      bddd      bddd
7783  No match  No match
7784    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7785  /(?(<bc))/  /(?(<bc))/
7786  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7787    
# Line 7792  Failed: reference to non-existent subpat Line 7812  Failed: reference to non-existent subpat
7812   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7813   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7814    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7815  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7816  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7817    
# Line 7819  Options: extended Line 7821  Options: extended
7821  First char = 'x'  First char = 'x'
7822  Need char = 'z'  Need char = 'z'
7823    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7824  /(a|)*\d/  /(a|)*\d/
7825    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7826  No match  No match
# Line 7851  No match Line 7850  No match
7850  No match  No match
7851    
7852  /^abc./mgx<any>  /^abc./mgx<any>
7853      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7854   0: abc1   0: abc1
7855   0: abc2   0: abc2
7856   0: abc3   0: abc3
# Line 7861  No match Line 7860  No match
7860   0: abc7   0: abc7
7861    
7862  /abc.$/mgx<any>  /abc.$/mgx<any>
7863      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7864   0: abc1   0: abc1
7865   0: abc2   0: abc2
7866   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 7986  Need char = 'P'
7986   0: PXP   0: PXP
7987   1: P   1: P
7988    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7989  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7990      123axbaxbaxbx456      123axbaxbaxbx456
7991   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 8023  No match
8023     DEFabcABCXYZ     DEFabcABCXYZ
8024  No match  No match
8025    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
8026  /^(a)\g-2/  /^(a)\g-2/
8027  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8028    
# Line 8163  No match Line 8116  No match
8116   0+   0+
8117    
8118  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
8119      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8120   0: abc1   0: abc1
8121   0: abc4   0: abc4
8122   0: abc5   0: abc5
# Line 8185  No match Line 8138  No match
8138          Alt          Alt
8139          c          c
8140          Ket          Ket
         Once  
8141          Recurse          Recurse
8142          Ket          Ket
         Ket  
8143          End          End
8144  ------------------------------------------------------------------  ------------------------------------------------------------------
8145      abc      abc
# Line 8199  No match Line 8150  No match
8150  ------------------------------------------------------------------  ------------------------------------------------------------------
8151          Bra          Bra
8152          xy          xy
         Once  
8153          Recurse          Recurse
         Ket  
8154          CBra 1          CBra 1
8155          abc          abc
8156          Ket          Ket
# Line 8325  Failed: reference to non-existent subpat Line 8274  Failed: reference to non-existent subpat
8274   0: Y!   0: Y!
8275   1: !   1: !
8276    
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
   
8277  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8278      tom-tom      tom-tom
8279   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8286  No match
8286      tom-bon      tom-bon
8287  No match  No match
8288    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8289  /\g{A/  /\g{A/
8290  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8291    
# Line 8459  Failed: syntax error in subpattern name Line 8380  Failed: syntax error in subpattern name
8380   3: <unset>   3: <unset>
8381   4: x   4: x
8382    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
 /[\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  
 ------------------------------------------------------------------  
   
8383  /\H++X/BZ  /\H++X/BZ
8384  ------------------------------------------------------------------  ------------------------------------------------------------------
8385          Bra          Bra
# Line 8786  No match Line 8571  No match
8571  ------------------------------------------------------------------  ------------------------------------------------------------------
8572    
8573  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8574  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8575   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8576    
8577  /[\E]AAA/  /[\E]AAA/
# Line 8831  Failed: missing terminating ] for charac Line 8616  Failed: missing terminating ] for charac
8616          End          End
8617  ------------------------------------------------------------------  ------------------------------------------------------------------
8618    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8619  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8620      aaaaaa      aaaaaa
8621  --->aaaaaa  --->aaaaaa
# Line 9040  No match Line 8744  No match
8744  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8745  No match  No match
8746    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8747  /a(*MARK)b/  /a(*MARK)b/
8748  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8749    
8750  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8751  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 9052  Failed: number is too big at offset 19 Line 8753  Failed: number is too big at offset 19
8753  /\g6666666666/  /\g6666666666/
8754  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8755    
8756  /[\g6666666666]/  /[\g6666666666]/BZ
8757  Failed: number is too big at offset 12  ------------------------------------------------------------------
8758            Bra
8759            [6g]
8760            Ket
8761            End
8762    ------------------------------------------------------------------
8763    
8764  /(?1)\c[/  /(?1)\c[/
8765  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9133  No match Line 8839  No match
8839  No match  No match
8840      a\x85b      a\x85b
8841  No match  No match
8842    
8843    /(*ANY).*/g
8844        abc\r\ndef
8845     0: abc
8846     0:
8847     0: def
8848     0:
8849    
8850    /(*ANYCRLF).*/g
8851        abc\r\ndef
8852     0: abc
8853     0:
8854     0: def
8855     0:
8856    
8857    /(*CRLF).*/g
8858        abc\r\ndef
8859     0: abc
8860     0:
8861     0: def
8862     0:
8863    
8864  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8865  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9216  No match Line 8943  No match
8943    
8944  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8945  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8946  Options: bsr_anycrlf  Options: bsr_anycrlf
8947  First char = 'a'  First char = 'a'
8948  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8961  No match
8961    
8962  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8963  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8964  Options: bsr_unicode  Options: bsr_unicode
8965  First char = 'a'  First char = 'a'
8966  Need char = 'b'  Need char = 'b'
# Line 9340  Failed: subpattern name expected at offs Line 9065  Failed: subpattern name expected at offs
9065  /\k{}/  /\k{}/
9066  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9067    
9068    /\k/
9069    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9070    
9071    /\kabc/
9072    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9073    
9074  /(?P=)/  /(?P=)/
9075  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9076    
# Line 9385  Failed: unknown POSIX class name at offs Line 9116  Failed: unknown POSIX class name at offs
9116  /[[:a\dz:]]/  /[[:a\dz:]]/
9117  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9118    
9119  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
9120      aaaa  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9121    
9122  /^(?<name>a|b\g'name'c)/  /^(?+1)(?<a>x|y){0}z/
9123      aaaa      xzxx
9124   0: a   0: xz
9125   1: a      yzyy
9126      bacxxx   0: yz
9127   0: bac      ** Failers
9128   1: bac  No match
9129      bbaccxxx      xxz
9130   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9131    
9132  /^(a|b\g<1>c)/  /(\3)(\1)(a)/
9133      aaaa      cat
9134   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9135    
9136  /^(a|b\g'1'c)/  /(\3)(\1)(a)/<JS>
9137      aaaa      cat
9138   0: a   0: a
9139   1: a   1:
9140      bacxxx   2:
9141   0: bac   3: a
9142   1: bac  
9143      bbaccxxx  /TA]/
9144   0: bbacc      The ACTA] comes
9145   1: bbacc   0: TA]
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9146    
9147  /^(a|b\g'-1'c)/  /TA]/<JS>
9148      aaaa  Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9149    
9150  /(^(a|b\g<-1>c))/  /(?2)[]a()b](abc)/
9151      aaaa  Failed: reference to non-existent subpattern at offset 3
  0: a  
  1: a  
  2: a  
     bacxxx  
  0: bac  
  1: bac  
  2: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
  2: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
  2: bbbaccc  
9152    
9153  /(^(a|b\g<-1'c))/  /(?2)[^]a()b](abc)/
9154  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  Failed: reference to non-existent subpattern at offset 3
9155    
9156  /(^(a|b\g{-1}))/  /(?1)[]a()b](abc)/
9157      bacxxx      abcbabc
9158  No match   0: abcbabc
9159     1: abc
9160  /(?-i:\g<name>)(?i:(?<name>a))/      ** Failers
9161      XaaX  No match
9162   0: aa      abcXabc
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     ** Failers  
 No match  
     XAAX  
 No match  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
  0: abc  
  1: a  
    accccbbb  
  0: accccbbb  
  1: a  
   
 /^(?+1)(?<a>x|y){0}z/  
     xzxx  
  0: xz  
  1: <unset>  
     yzyy  
  0: yz  
  1: <unset>  
     ** Failers  
 No match  
     xxz  
 No match  
   
 /(\3)(\1)(a)/  
     cat  
 No match  
   
 /(\3)(\1)(a)/<JS>  
     cat  
  0: a  
  1:  
  2:  
  3: a  
   
 /TA]/  
     The ACTA] comes  
  0: TA]  
   
 /TA]/<JS>  
 Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2  
   
 /(?2)[]a()b](abc)/  
 Failed: reference to non-existent subpattern at offset 3  
   
 /(?2)[^]a()b](abc)/  
 Failed: reference to non-existent subpattern at offset 3  
   
 /(?1)[]a()b](abc)/  
     abcbabc  
  0: abcbabc  
  1: abc  
     ** Failers  
 No match  
     abcXabc  
9163  No match  No match
9164    
9165  /(?1)[^]a()b](abc)/  /(?1)[^]a()b](abc)/
# Line 9636  Capturing subpattern count = 1 Line 9238  Capturing subpattern count = 1
9238  No options  No options
9239  No first char  No first char
9240  No need char  No need char
9241    Subject length lower bound = 1
9242  Starting byte set: x y z  Starting byte set: x y z
9243    
9244  / End of testinput2 /  /(?(?=.*b)b|^)/CI
9245    Capturing subpattern count = 0
9246    Options:
9247    No first char
9248    No need char
9249       adc
9250    --->adc
9251     +0 ^       (?(?=.*b)b|^)
9252     +2 ^       (?=.*b)
9253     +5 ^       .*
9254     +7 ^  ^    b
9255     +7 ^ ^     b
9256     +7 ^^      b
9257     +7 ^       b
9258    +12 ^       )
9259    +13 ^
9260     0:
9261       abc
9262    --->abc
9263     +0 ^       (?(?=.*b)b|^)
9264     +2 ^       (?=.*b)
9265     +5 ^       .*
9266     +7 ^  ^    b
9267     +7 ^ ^     b
9268     +7 ^^      b
9269     +8 ^ ^     )
9270     +9 ^       b
9271     +0  ^      (?(?=.*b)b|^)
9272     +2  ^      (?=.*b)
9273     +5  ^      .*
9274     +7  ^ ^    b
9275     +7  ^^     b
9276     +7  ^      b
9277     +8  ^^     )
9278     +9  ^      b
9279    +10  ^^     |
9280    +13  ^^
9281     0: b
9282    
9283    /(?(?=b).*b|^d)/I
9284    Capturing subpattern count = 0
9285    No options
9286    No first char
9287    No need char
9288    
9289    /(?(?=.*b).*b|^d)/I
9290    Capturing subpattern count = 0
9291    No options
9292    First char at start or follows newline
9293    No need char
9294    
9295    /xyz/C
9296      xyz
9297    --->xyz
9298     +0 ^       x
9299     +1 ^^      y
9300     +2 ^ ^     z
9301     +3 ^  ^
9302     0: xyz
9303      abcxyz
9304    --->abcxyz
9305     +0    ^       x
9306     +1    ^^      y
9307     +2    ^ ^     z
9308     +3    ^  ^
9309     0: xyz
9310      abcxyz\Y
9311    --->abcxyz
9312     +0 ^          x
9313     +0  ^         x
9314     +0   ^        x
9315     +0    ^       x
9316     +1    ^^      y
9317     +2    ^ ^     z
9318     +3    ^  ^
9319     0: xyz
9320      ** Failers
9321    No match
9322      abc
9323    No match
9324      abc\Y
9325    --->abc
9326     +0 ^       x
9327     +0  ^      x
9328     +0   ^     x
9329     +0    ^    x
9330    No match
9331      abcxypqr
9332    No match
9333      abcxypqr\Y
9334    --->abcxypqr
9335     +0 ^            x
9336     +0  ^           x
9337     +0   ^          x
9338     +0    ^         x
9339     +1    ^^        y
9340     +2    ^ ^       z
9341     +0     ^        x
9342     +0      ^       x
9343     +0       ^      x
9344     +0        ^     x
9345     +0         ^    x
9346    No match
9347    
9348    /(*NO_START_OPT)xyz/C
9349      abcxyz
9350    --->abcxyz
9351    +15 ^          x
9352    +15  ^         x
9353    +15   ^        x
9354    +15    ^       x
9355    +16    ^^      y
9356    +17    ^ ^     z
9357    +18    ^  ^
9358     0: xyz
9359    
9360    /xyz/CY
9361      abcxyz
9362    --->abcxyz
9363     +0 ^          x
9364     +0  ^         x
9365     +0   ^        x
9366     +0    ^       x
9367     +1    ^^      y
9368     +2    ^ ^     z
9369     +3    ^  ^
9370     0: xyz
9371    
9372    /^"((?(?=[a])[^"])|b)*"$/C
9373        "ab"
9374    --->"ab"
9375     +0 ^        ^
9376     +1 ^        "
9377     +2 ^^       ((?(?=[a])[^"])|b)*
9378     +3 ^^       (?(?=[a])[^"])
9379     +5 ^^       (?=[a])
9380     +8 ^^       [a]
9381    +11 ^ ^      )
9382    +12 ^^       [^"]
9383    +16 ^ ^      )
9384    +17 ^ ^      |
9385     +3 ^ ^      (?(?=[a])[^"])
9386     +5 ^ ^      (?=[a])
9387     +8 ^ ^      [a]
9388    +21 ^ ^      "
9389    +18 ^ ^      b
9390    +19 ^  ^     )
9391     +3 ^  ^     (?(?=[a])[^"])
9392     +5 ^  ^     (?=[a])
9393     +8 ^  ^     [a]
9394    +21 ^  ^     "
9395    +22 ^   ^    $
9396    +23 ^   ^
9397     0: "ab"
9398     1:
9399    
9400    /^"((?(?=[a])[^"])|b)*"$/
9401        "ab"
9402     0: "ab"
9403     1:
9404    
9405    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9406    Failed: reference to non-existent subpattern at offset 5
9407    
9408    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9409        XYabcdY
9410     0: XYabcdY
9411     1: a
9412     2: b
9413     3: c
9414     4: d
9415     5: Y
9416    
9417    /Xa{2,4}b/
9418        X\P
9419    Partial match: X
9420        Xa\P
9421    Partial match: Xa
9422        Xaa\P
9423    Partial match: Xaa
9424        Xaaa\P
9425    Partial match: Xaaa
9426        Xaaaa\P
9427    Partial match: Xaaaa
9428    
9429    /Xa{2,4}?b/
9430        X\P
9431    Partial match: X
9432        Xa\P
9433    Partial match: Xa
9434        Xaa\P
9435    Partial match: Xaa
9436        Xaaa\P
9437    Partial match: Xaaa
9438        Xaaaa\P
9439    Partial match: Xaaaa
9440    
9441    /Xa{2,4}+b/
9442        X\P
9443    Partial match: X
9444        Xa\P
9445    Partial match: Xa
9446        Xaa\P
9447    Partial match: Xaa
9448        Xaaa\P
9449    Partial match: Xaaa
9450        Xaaaa\P
9451    Partial match: Xaaaa
9452    
9453    /X\d{2,4}b/
9454        X\P
9455    Partial match: X
9456        X3\P
9457    Partial match: X3
9458        X33\P
9459    Partial match: X33
9460        X333\P
9461    Partial match: X333
9462        X3333\P
9463    Partial match: X3333
9464    
9465    /X\d{2,4}?b/
9466        X\P
9467    Partial match: X
9468        X3\P
9469    Partial match: X3
9470        X33\P
9471    Partial match: X33
9472        X333\P
9473    Partial match: X333
9474        X3333\P
9475    Partial match: X3333
9476    
9477    /X\d{2,4}+b/
9478        X\P
9479    Partial match: X
9480        X3\P
9481    Partial match: X3
9482        X33\P
9483    Partial match: X33
9484        X333\P
9485    Partial match: X333
9486        X3333\P
9487    Partial match: X3333
9488    
9489    /X\D{2,4}b/
9490        X\P
9491    Partial match: X
9492        Xa\P
9493    Partial match: Xa
9494        Xaa\P
9495    Partial match: Xaa
9496        Xaaa\P
9497    Partial match: Xaaa
9498        Xaaaa\P
9499    Partial match: Xaaaa
9500    
9501    /X\D{2,4}?b/
9502        X\P
9503    Partial match: X
9504        Xa\P
9505    Partial match: Xa
9506        Xaa\P
9507    Partial match: Xaa
9508        Xaaa\P
9509    Partial match: Xaaa
9510        Xaaaa\P
9511    Partial match: Xaaaa
9512    
9513    /X\D{2,4}+b/
9514        X\P
9515    Partial match: X
9516        Xa\P
9517    Partial match: Xa
9518        Xaa\P
9519    Partial match: Xaa
9520        Xaaa\P
9521    Partial match: Xaaa
9522        Xaaaa\P
9523    Partial match: Xaaaa
9524    
9525    /X[abc]{2,4}b/
9526        X\P
9527    Partial match: X
9528        Xa\P
9529    Partial match: Xa
9530        Xaa\P
9531    Partial match: Xaa
9532        Xaaa\P
9533    Partial match: Xaaa
9534        Xaaaa\P
9535    Partial match: Xaaaa
9536    
9537    /X[abc]{2,4}?b/
9538        X\P
9539    Partial match: X
9540        Xa\P
9541    Partial match: Xa
9542        Xaa\P
9543    Partial match: Xaa
9544        Xaaa\P
9545    Partial match: Xaaa
9546        Xaaaa\P
9547    Partial match: Xaaaa
9548    
9549    /X[abc]{2,4}+b/
9550        X\P
9551    Partial match: X
9552        Xa\P
9553    Partial match: Xa
9554        Xaa\P
9555    Partial match: Xaa
9556        Xaaa\P
9557    Partial match: Xaaa
9558        Xaaaa\P
9559    Partial match: Xaaaa
9560    
9561    /X[^a]{2,4}b/
9562        X\P
9563    Partial match: X
9564        Xz\P
9565    Partial match: Xz
9566        Xzz\P
9567    Partial match: Xzz
9568        Xzzz\P
9569    Partial match: Xzzz
9570        Xzzzz\P
9571    Partial match: Xzzzz
9572    
9573    /X[^a]{2,4}?b/
9574        X\P
9575    Partial match: X
9576        Xz\P
9577    Partial match: Xz
9578        Xzz\P
9579    Partial match: Xzz
9580        Xzzz\P
9581    Partial match: Xzzz
9582        Xzzzz\P
9583    Partial match: Xzzzz
9584    
9585    /X[^a]{2,4}+b/
9586        X\P
9587    Partial match: X
9588        Xz\P
9589    Partial match: Xz
9590        Xzz\P
9591    Partial match: Xzz
9592        Xzzz\P
9593    Partial match: Xzzz
9594        Xzzzz\P
9595    Partial match: Xzzzz
9596    
9597    /(Y)X\1{2,4}b/
9598        YX\P
9599    Partial match: YX
9600        YXY\P
9601    Partial match: YXY
9602        YXYY\P
9603    Partial match: YXYY
9604        YXYYY\P
9605    Partial match: YXYYY
9606        YXYYYY\P
9607    Partial match: YXYYYY
9608    
9609    /(Y)X\1{2,4}?b/
9610        YX\P
9611    Partial match: YX
9612        YXY\P
9613    Partial match: YXY
9614        YXYY\P
9615    Partial match: YXYY
9616        YXYYY\P
9617    Partial match: YXYYY
9618        YXYYYY\P
9619    Partial match: YXYYYY
9620    
9621    /(Y)X\1{2,4}+b/
9622        YX\P
9623    Partial match: YX
9624        YXY\P
9625    Partial match: YXY
9626        YXYY\P
9627    Partial match: YXYY
9628        YXYYY\P
9629    Partial match: YXYYY
9630        YXYYYY\P
9631    Partial match: YXYYYY
9632    
9633    /\++\KZ|\d+X|9+Y/
9634        ++++123999\P
9635    Partial match: 123999
9636        ++++123999Y\P
9637     0: 999Y
9638        ++++Z1234\P
9639     0: Z
9640    
9641    /Z(*F)/
9642        Z\P
9643    No match
9644        ZA\P
9645    No match
9646    
9647    /Z(?!)/
9648        Z\P
9649    No match
9650        ZA\P
9651    No match
9652    
9653    /dog(sbody)?/
9654        dogs\P
9655     0: dog
9656        dogs\P\P
9657    Partial match: dogs
9658    
9659    /dog(sbody)??/
9660        dogs\P
9661     0: dog
9662        dogs\P\P
9663     0: dog
9664    
9665    /dog|dogsbody/
9666        dogs\P
9667     0: dog
9668        dogs\P\P
9669     0: dog
9670    
9671    /dogsbody|dog/
9672        dogs\P
9673     0: dog
9674        dogs\P\P
9675    Partial match: dogs
9676    
9677    /\bthe cat\b/
9678        the cat\P
9679     0: the cat
9680        the cat\P\P
9681    Partial match: the cat
9682    
9683    /abc/
9684       abc\P
9685     0: abc
9686       abc\P\P
9687     0: abc
9688    
9689    /abc\K123/
9690        xyzabc123pqr
9691     0: 123
9692        xyzabc12\P
9693    Partial match: abc12
9694        xyzabc12\P\P
9695    Partial match: abc12
9696    
9697    /(?<=abc)123/
9698        xyzabc123pqr
9699     0: 123
9700        xyzabc12\P
9701    Partial match: abc12
9702        xyzabc12\P\P
9703    Partial match: abc12
9704    
9705    /\babc\b/
9706        +++abc+++
9707     0: abc
9708        +++ab\P
9709    Partial match: +ab
9710        +++ab\P\P
9711    Partial match: +ab
9712    
9713    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9714    ------------------------------------------------------------------
9715            Bra
9716            Recurse
9717            Recurse
9718            Cond
9719            Cond def
9720            CBra 1
9721            <
9722            [^m]
9723            [^>]
9724            >
9725            [^<]
9726            Ket
9727            CBra 2
9728            \w*+
9729            Ket
9730            Ket
9731            Ket
9732            End
9733    ------------------------------------------------------------------
9734    
9735    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9736    ------------------------------------------------------------------
9737            Bra
9738            Recurse
9739            Recurse
9740            Cond
9741            Cond def
9742            CBra 1
9743            <
9744            [\x00-/:-\xff] (neg)
9745            [^>]
9746            >
9747            [^<]
9748            Ket
9749            CBra 2
9750            \w*+
9751            Ket
9752            Ket
9753            Ket
9754            End
9755    ------------------------------------------------------------------
9756    
9757    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9758    ------------------------------------------------------------------
9759            Bra
9760            CBra 1
9761            ab
9762            Ket
9763            CBra 2
9764            x
9765            CBra 3
9766            y
9767            Ket
9768            z
9769            CBra 4
9770            cd
9771            Close 4
9772            Close 2
9773            *ACCEPT
9774            Ket
9775            Ket
9776            pq
9777            Ket
9778            End
9779    ------------------------------------------------------------------
9780    
9781    /abc\K/+
9782        abcdef
9783     0:
9784     0+ def
9785        abcdef\N\N
9786     0:
9787     0+ def
9788        xyzabcdef\N\N
9789     0:
9790     0+ def
9791        ** Failers
9792    No match
9793        abcdef\N
9794    No match
9795        xyzabcdef\N
9796    No match
9797    
9798    /^(?:(?=abc)|abc\K)/+
9799        abcdef
9800     0:
9801     0+ abcdef
9802        abcdef\N\N
9803     0:
9804     0+ def
9805        ** Failers
9806    No match
9807        abcdef\N
9808    No match
9809    
9810    /a?b?/+
9811        xyz
9812     0:
9813     0+ xyz
9814        xyzabc
9815     0:
9816     0+ xyzabc
9817        xyzabc\N
9818     0: ab
9819     0+ c
9820        xyzabc\N\N
9821     0:
9822     0+ yzabc
9823        xyz\N\N
9824     0:
9825     0+ yz
9826        ** Failers
9827     0:
9828     0+ ** Failers
9829        xyz\N
9830    No match
9831    
9832    /^a?b?/+
9833        xyz
9834     0:
9835     0+ xyz
9836        xyzabc
9837     0:
9838     0+ xyzabc
9839        ** Failers
9840     0:
9841     0+ ** Failers
9842        xyzabc\N
9843    No match
9844        xyzabc\N\N
9845    No match
9846        xyz\N\N
9847    No match
9848        xyz\N
9849    No match
9850    
9851    /^(?<name>a|b\g<name>c)/
9852        aaaa
9853     0: a
9854     1: a
9855        bacxxx
9856     0: bac
9857     1: bac
9858        bbaccxxx
9859     0: bbacc
9860     1: bbacc
9861        bbbacccxx
9862     0: bbbaccc
9863     1: bbbaccc
9864    
9865    /^(?<name>a|b\g'name'c)/
9866        aaaa
9867     0: a
9868     1: a
9869        bacxxx
9870     0: bac
9871     1: bac
9872        bbaccxxx
9873     0: bbacc
9874     1: bbacc
9875        bbbacccxx
9876     0: bbbaccc
9877     1: bbbaccc
9878