/[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 342 by ph10, Sun Apr 20 17:10:13 2008 UTC revision 766 by ph10, Fri Nov 25 10:04:12 2011 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-8 set of tests. When UTF-8 is needed, use test
9        5, and if Unicode Property Support is needed, use test 13. --/
10    
11    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
12        separated many (most?) of them out into test 11. However, there may still
13        be some that were overlooked. --/
14    
15  /(a)b|/I  /(a)b|/I
16  Capturing subpattern count = 1  Capturing subpattern count = 1
17  No options  No options
# Line 40  No match Line 54  No match
54    
55  /a+bc/I  /a+bc/I
56  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
57  No options  No options
58  First char = 'a'  First char = 'a'
59  Need char = 'c'  Need char = 'c'
60    
61  /a*bc/I  /a*bc/I
62  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
63  No options  No options
64  No first char  No first char
65  Need char = 'c'  Need char = 'c'
66    
67  /a{3}bc/I  /a{3}bc/I
68  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
69  No options  No options
70  First char = 'a'  First char = 'a'
71  Need char = 'c'  Need char = 'c'
72    
73  /(abc|a+z)/I  /(abc|a+z)/I
74  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
75  No options  No options
76  First char = 'a'  First char = 'a'
77  No need char  No need char
# Line 96  Failed: missing terminating ] for charac Line 106  Failed: missing terminating ] for charac
106  /(?X)[\B]/  /(?X)[\B]/
107  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\R]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /(?X)[\X]/
113    Failed: invalid escape sequence in character class at offset 6
114    
115    /[\B]/BZ
116    ------------------------------------------------------------------
117            Bra
118            B
119            Ket
120            End
121    ------------------------------------------------------------------
122    
123    /[\R]/BZ
124    ------------------------------------------------------------------
125            Bra
126            R
127            Ket
128            End
129    ------------------------------------------------------------------
130    
131    /[\X]/BZ
132    ------------------------------------------------------------------
133            Bra
134            X
135            Ket
136            End
137    ------------------------------------------------------------------
138    
139  /[z-a]/  /[z-a]/
140  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
141    
# Line 113  Failed: unrecognized character after (? Line 153  Failed: unrecognized character after (?
153    
154  /.*b/I  /.*b/I
155  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
156  No options  No options
157  First char at start or follows newline  First char at start or follows newline
158  Need char = 'b'  Need char = 'b'
159    
160  /.*?b/I  /.*?b/I
161  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
162  No options  No options
163  First char at start or follows newline  First char at start or follows newline
164  Need char = 'b'  Need char = 'b'
# Line 140  Capturing subpattern count = 0 Line 178  Capturing subpattern count = 0
178  No options  No options
179  No first char  No first char
180  No need char  No need char
181    Subject length lower bound = 3
182  Starting byte set: c d e  Starting byte set: c d e
183      this sentence eventually mentions a cat      this sentence eventually mentions a cat
184   0: cat   0: cat
# Line 151  Capturing subpattern count = 0 Line 190  Capturing subpattern count = 0
190  Options: caseless  Options: caseless
191  No first char  No first char
192  No need char  No need char
193    Subject length lower bound = 3
194  Starting byte set: C D E c d e  Starting byte set: C D E c d e
195      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
196   0: CAT   0: CAT
# Line 162  Capturing subpattern count = 0 Line 202  Capturing subpattern count = 0
202  No options  No options
203  No first char  No first char
204  No need char  No need char
205    Subject length lower bound = 1
206  Starting byte set: a b c d  Starting byte set: a b c d
207    
208  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 169  Capturing subpattern count = 1 Line 210  Capturing subpattern count = 1
210  No options  No options
211  No first char  No first char
212  No need char  No need char
213    Subject length lower bound = 1
214  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
215    \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
216    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 189  Capturing subpattern count = 1 Line 231  Capturing subpattern count = 1
231  No options  No options
232  No first char  No first char
233  No need char  No need char
234    Subject length lower bound = 1
235  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236    
237  /(ab\2)/  /(ab\2)/
# Line 324  No need char Line 367  No need char
367    
368  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
369  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
370  No options  No options
371  First char at start or follows newline  First char at start or follows newline
372  No need char  No need char
# Line 338  No need char Line 380  No need char
380   2: <unset>   2: <unset>
381   3: def   3: def
382    
383  /abc/IP  /abc/P
384      abc      abc
385   0: abc   0: abc
386      *** Failers      *** Failers
387  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
388    
389  /^abc|def/IP  /^abc|def/P
390      abcdef      abcdef
391   0: abc   0: abc
392      abcdef\B      abcdef\B
393   0: def   0: def
394    
395  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
396      defabc      defabc
397   0: defabc   0: defabc
398   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 402  No match: POSIX code 17: match failed
402   1: def   1: def
403   3: def   3: def
404    
405  /the quick brown fox/IP  /the quick brown fox/P
406      the quick brown fox      the quick brown fox
407   0: the quick brown fox   0: the quick brown fox
408      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 410  No match: POSIX code 17: match failed
410      The Quick Brown Fox      The Quick Brown Fox
411  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
412    
413  /the quick brown fox/IPi  /the quick brown fox/Pi
414      the quick brown fox      the quick brown fox
415   0: the quick brown fox   0: the quick brown fox
416      The Quick Brown Fox      The Quick Brown Fox
417   0: The Quick Brown Fox   0: The Quick Brown Fox
418    
419  /abc.def/IP  /abc.def/P
420      *** Failers      *** Failers
421  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
422      abc\ndef      abc\ndef
423  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
424    
425  /abc$/IP  /abc$/P
426      abc      abc
427   0: abc   0: abc
428      abc\n      abc\n
429   0: abc   0: abc
430    
431  /(abc)\2/IP  /(abc)\2/P
432  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
433    
434  /(abc\1)/IP  /(abc\1)/P
435      abc      abc
436  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
437    
# Line 401  Failed: missing terminating ] for charac Line 443  Failed: missing terminating ] for charac
443    
444  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
445  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
446  No options  No options
447  No first char  No first char
448  No need char  No need char
# Line 410  No need char Line 451  No need char
451    
452  /<.*>/I  /<.*>/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
454  No options  No options
455  First char = '<'  First char = '<'
456  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 459  Need char = '>'
459    
460  /<.*?>/I  /<.*?>/I
461  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
462  No options  No options
463  First char = '<'  First char = '<'
464  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 467  Need char = '>'
467    
468  /<.*>/IU  /<.*>/IU
469  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
470  Options: ungreedy  Options: ungreedy
471  First char = '<'  First char = '<'
472  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 475  Need char = '>'
475    
476  /(?U)<.*>/I  /(?U)<.*>/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
478  Options: ungreedy  Options: ungreedy
479  First char = '<'  First char = '<'
480  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 483  Need char = '>'
483    
484  /<.*?>/IU  /<.*?>/IU
485  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
486  Options: ungreedy  Options: ungreedy
487  First char = '<'  First char = '<'
488  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 491  Need char = '>'
491    
492  /={3,}/IU  /={3,}/IU
493  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
494  Options: ungreedy  Options: ungreedy
495  First char = '='  First char = '='
496  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 499  Need char = '='
499    
500  /(?U)={3,}?/I  /(?U)={3,}?/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
502  Options: ungreedy  Options: ungreedy
503  First char = '='  First char = '='
504  Need char = '='  Need char = '='
# Line 522  No need char Line 556  No need char
556    
557  /(?s).*/I  /(?s).*/I
558  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
559  Options: anchored dotall  Options: anchored dotall
560  No first char  No first char
561  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 565  Capturing subpattern count = 0
565  No options  No options
566  No first char  No first char
567  No need char  No need char
568    Subject length lower bound = 1
569  Starting byte set: a b c d  Starting byte set: a b c d
570    
571  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 573  Capturing subpattern count = 0
573  Options: caseless  Options: caseless
574  No first char  No first char
575  No need char  No need char
576    Subject length lower bound = 1
577  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
578    
579  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 581  Capturing subpattern count = 1
581  Options: multiline  Options: multiline
582  No first char  No first char
583  No need char  No need char
584    Subject length lower bound = 1
585  Starting byte set: b c x y  Starting byte set: b c x y
586    
587  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 620  Failed: syntax error in subpattern name
620  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
621  Capturing subpattern count = 1  Capturing subpattern count = 1
622  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
623  No options  No options
624  First char = 'b'  First char = 'b'
625  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 627  Need char = 'h'
627  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
628  Capturing subpattern count = 1  Capturing subpattern count = 1
629  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
630  No options  No options
631  First char = 'b' (caseless)  First char = 'b' (caseless)
632  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 601  Need char = 'h' (caseless) Line 635  Need char = 'h' (caseless)
635  ------------------------------------------------------------------  ------------------------------------------------------------------
636          Bra          Bra
637          CBra 1          CBra 1
638       01 Opt       /i b
      NC b  
639          Ket          Ket
      00 Opt  
640          Ket          Ket
641          End          End
642  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 612  Capturing subpattern count = 1 Line 644  Capturing subpattern count = 1
644  No options  No options
645  First char = 'b' (caseless)  First char = 'b' (caseless)
646  No need char  No need char
647  Study returned NULL  Subject length lower bound = 1
648    No set of starting bytes
649    
650  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
651  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
652  No options  No options
653  No first char  No first char
654  No need char  No need char
655    Subject length lower bound = 1
656  Starting byte set: C a b c d  Starting byte set: C a b c d
657    
658  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 701  Need char = 'c'
701    
702  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
703  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
704  Options: anchored  Options: anchored
705  No first char  No first char
706  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 717  Capturing subpattern count = 0
717  No options  No options
718  No first char  No first char
719  No need char  No need char
720    Subject length lower bound = 1
721  Starting byte set: a b  Starting byte set: a b
722    
723  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 725  Capturing subpattern count = 1
725  No options  No options
726  No first char  No first char
727  Need char = 'a'  Need char = 'a'
728    Subject length lower bound = 5
729  Starting byte set: a o  Starting byte set: a o
730    
731  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 733  Capturing subpattern count = 0
733  No options  No options
734  No first char  No first char
735  No need char  No need char
736    Subject length lower bound = 1
737  Starting byte set: a b  Starting byte set: a b
738    
739  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 819  No need char
819    
820  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
821  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
822  No options  No options
823  First char at start or follows newline  First char at start or follows newline
824  No need char  No need char
# Line 854  No match Line 888  No match
888      a      a
889  No match  No match
890    
891  /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
892  Capturing subpattern count = 0  Capturing subpattern count = 0
893  No options  No options
894  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 900  Max back reference = 1
900  Options: anchored  Options: anchored
901  No first char  No first char
902  No need char  No need char
903        aaaa
904    No match
905      aaaaaa      aaaaaa
906   0: aaaaaa  No match
907   1: aa  
908    /Perl does not fail these two for the final subjects. Neither did PCRE until/
909    /release 8.01. The problem is in backtracking into a subpattern that contains/
910    No match
911    /a recursive reference to itself. PCRE has now made these into atomic patterns./
912    No match
913    
914    /^(xa|=?\1a){2}$/
915        xa=xaa
916     0: xa=xaa
917     1: =xaa
918        ** Failers
919    No match
920        xa=xaaa
921    No match
922    
923    /^(xa|=?\1a)+$/
924        xa=xaa
925     0: xa=xaa
926     1: =xaa
927        ** Failers
928    No match
929        xa=xaaa
930    No match
931    
932  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
933  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1003  copy substring 5 failed -7 Line 1062  copy substring 5 failed -7
1062    
1063  /(.{20})/I  /(.{20})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1021  No need char Line 1079  No need char
1079    
1080  /(.{15})/I  /(.{15})/I
1081  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1082  No options  No options
1083  No first char  No first char
1084  No need char  No need char
# Line 1036  No need char Line 1093  No need char
1093    
1094  /(.{16})/I  /(.{16})/I
1095  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1096  No options  No options
1097  No first char  No first char
1098  No need char  No need char
# Line 1103  No need char Line 1159  No need char
1159  )((?:[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]+
1160  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1161  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1162  Contains explicit CR or LF match  Contains explicit CR or LF match
1163  No options  No options
1164  First char = 'w'  First char = 'w'
# Line 1118  Need char = 'd' Line 1173  Need char = 'd'
1173          End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows newline  First char at start or follows newline
1178  Need char = 'X'  Need char = 'X'
# Line 1132  Need char = 'X' Line 1186  Need char = 'X'
1186          End          End
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1189  Options: anchored dotall  Options: anchored dotall
1190  No first char  No first char
1191  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1204  Need char = 'X'
1204          End          End
1205  ------------------------------------------------------------------  ------------------------------------------------------------------
1206  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1207  No options  No options
1208  First char at start or follows newline  First char at start or follows newline
1209  No need char  No need char
# Line 1170  No need char Line 1222  No need char
1222          End          End
1223  ------------------------------------------------------------------  ------------------------------------------------------------------
1224  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1225  Options: anchored dotall  Options: anchored dotall
1226  No first char  No first char
1227  No need char  No need char
# Line 1189  No need char Line 1240  No need char
1240          End          End
1241  ------------------------------------------------------------------  ------------------------------------------------------------------
1242  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1243  Options: anchored dotall  Options: anchored dotall
1244  No first char  No first char
1245  No need char  No need char
# Line 1198  No need char Line 1248  No need char
1248  ------------------------------------------------------------------  ------------------------------------------------------------------
1249          Bra          Bra
1250          Bra          Bra
      04 Opt  
1251          AllAny*          AllAny*
1252          X          X
1253          Alt          Alt
      04 Opt  
1254          ^          ^
1255          B          B
1256          Ket          Ket
      00 Opt  
1257          Ket          Ket
1258          End          End
1259  ------------------------------------------------------------------  ------------------------------------------------------------------
1260  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1261  Options: anchored  Options: anchored
1262  No first char  No first char
1263  No need char  No need char
# Line 1296  No need char Line 1342  No need char
1342    
1343  /.*iss/Ig+  /.*iss/Ig+
1344  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1345  No options  No options
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 's'  Need char = 's'
# Line 1399  Need char = 'c' Line 1444  Need char = 'c'
1444    
1445  /a*/I  /a*/I
1446  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /a+/I  /a+/I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  No need char  No need char
1456    
1457  /(baa|a+)/I  /(baa|a+)/I
1458  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1459  No options  No options
1460  No first char  No first char
1461  Need char = 'a'  Need char = 'a'
1462    
1463  /a{0,3}/I  /a{0,3}/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1465  No options  No options
1466  No first char  No first char
1467  No need char  No need char
1468    
1469  /baa{3,}/I  /baa{3,}/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'b'  First char = 'b'
1473  Need char = 'a'  Need char = 'a'
1474    
1475  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1476  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1477  No options  No options
1478  First char = '"'  First char = '"'
1479  Need char = '"'  Need char = '"'
# Line 1489  Need char = 'b' Line 1528  Need char = 'b'
1528    
1529  /abc*/I  /abc*/I
1530  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  Need char = 'b'  Need char = 'b'
1534    
1535  /ab.c*/I  /ab.c*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  Need char = 'b'  Need char = 'b'
1540    
1541  /a.c*/I  /a.c*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  No need char  No need char
1546    
1547  /.c*/I  /.c*/I
1548  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1549  No options  No options
1550  No first char  No first char
1551  No need char  No need char
1552    
1553  /ac*/I  /ac*/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  No need char  No need char
1558    
1559  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1560  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1561  No options  No options
1562  No first char  No first char
1563  No need char  No need char
1564    
1565  /a.c*|aba/I  /a.c*|aba/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /.+a/I  /.+a/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1573  No options  No options
1574  No first char  No first char
1575  Need char = 'a'  Need char = 'a'
1576    
1577  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'a'  Need char = 'a'
1582    
1583  /(?=a)a.*/I  /(?=a)a.*/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
# Line 1565  No need char Line 1594  No need char
1594    
1595  /a\d*/I  /a\d*/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  No need char  No need char
1600    
1601  /ab\d*/I  /ab\d*/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1603  No options  No options
1604  First char = 'a'  First char = 'a'
1605  Need char = 'b'  Need char = 'b'
# Line 1591  Need char = 'd' Line 1618  Need char = 'd'
1618    
1619  /ab\d+/I  /ab\d+/I
1620  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1621  No options  No options
1622  First char = 'a'  First char = 'a'
1623  Need char = 'b'  Need char = 'b'
# Line 1666  No need char Line 1692  No need char
1692      \Nabc      \Nabc
1693  No match  No match
1694    
1695  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1696      aaaabbbbzzzz      aaaabbbbzzzz
1697   0: aaaabbbbzz   0: aaaabbbbzz
1698   1: bbbb   1: bbbb
# Line 1698  Capturing subpattern count = 0 Line 1724  Capturing subpattern count = 0
1724  Options: anchored  Options: anchored
1725  No first char  No first char
1726  Need char = 'd'  Need char = 'd'
1727  Study returned NULL  Subject length lower bound = 4
1728    No set of starting bytes
1729    
1730  /\(             # ( at start  /\(             # ( at start
1731    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1709  Study returned NULL Line 1736  Study returned NULL
1736    \)            # Closing )    \)            # Closing )
1737    /Ix    /Ix
1738  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
# Line 1738  No match Line 1764  No match
1764    
1765  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1766  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1767  Options: extended  Options: extended
1768  First char = '('  First char = '('
1769  Need char = ')'  Need char = ')'
# Line 1753  Need char = ')' Line 1778  Need char = ')'
1778    
1779  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1780  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1772  No match Line 1796  No match
1796    
1797  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1798  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1799  Options: extended  Options: extended
1800  First char = '('  First char = '('
1801  Need char = ')'  Need char = ')'
# Line 1783  Need char = ')' Line 1806  Need char = ')'
1806    
1807  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1808  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1809  Options: extended  Options: extended
1810  First char = '('  First char = '('
1811  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1815  Need char = ')'
1815    
1816  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1817  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1818  Options: extended  Options: extended
1819  First char = '('  First char = '('
1820  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1825  Need char = ')'
1825    
1826  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1827  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1828  Options: extended  Options: extended
1829  First char = '('  First char = '('
1830  Need char = ')'  Need char = ')'
# Line 1821  Need char = ')' Line 1841  Need char = ')'
1841    
1842  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1843  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1844  Options: extended  Options: extended
1845  First char = '('  First char = '('
1846  Need char = ')'  Need char = ')'
# Line 1838  Need char = ')' Line 1857  Need char = ')'
1857    
1858  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1859  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1860  Options: extended  Options: extended
1861  First char = '('  First char = '('
1862  Need char = ')'  Need char = ')'
# Line 1858  Need char = ')' Line 1876  Need char = ')'
1876    
1877  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1878  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1879  Options: extended  Options: extended
1880  First char = '('  First char = '('
1881  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1883  Need char = ')'
1883   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1884   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1885   2: 123   2: 123
  3: <unset>  
1886    
1887  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1889  Options: extended  Options: extended
1890  First char = '('  First char = '('
1891  Need char = ')'  Need char = ')'
# Line 1942  Capturing subpattern count = 0 Line 1957  Capturing subpattern count = 0
1957  No options  No options
1958  No first char  No first char
1959  No need char  No need char
1960    Subject length lower bound = 1
1961  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
1962    _ 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
1963    
# Line 2003  Contains explicit CR or LF match Line 2019  Contains explicit CR or LF match
2019  No options  No options
2020  No first char  No first char
2021  No need char  No need char
2022    Subject length lower bound = 1
2023  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024    
2025  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2249  Need char = 'd' Line 2266  Need char = 'd'
2266  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2267  Capturing subpattern count = 271  Capturing subpattern count = 271
2268  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2269  No options  No options
2270  No first char  No first char
2271  No need char  No need char
# Line 2746  No need char Line 2762  No need char
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763          Bra          Bra
2764          a          a
2765       01 Opt       /i b
      NC b  
2766          Ket          Ket
2767          End          End
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2769  No match Line 2784  No match
2784          Bra          Bra
2785          CBra 1          CBra 1
2786          a          a
2787       01 Opt       /i b
      NC b  
2788          Ket          Ket
      00 Opt  
2789          Ket          Ket
2790          End          End
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2794  No match Line 2807  No match
2807  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809          Bra          Bra
2810       NC abc       /i abc
2811          Ket          Ket
2812          End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2807  Need char = 'c' (caseless) Line 2820  Need char = 'c' (caseless)
2820    (?i)abc/IxDZ    (?i)abc/IxDZ
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822          Bra          Bra
2823       NC abc       /i abc
2824          Ket          Ket
2825          End          End
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2930  Need char = 'c' Line 2943  Need char = 'c'
2943          End          End
2944  ------------------------------------------------------------------  ------------------------------------------------------------------
2945  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
# Line 2959  No need char Line 2971  No need char
2971          End          End
2972  ------------------------------------------------------------------  ------------------------------------------------------------------
2973  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2974  No options  No options
2975  First char = 'x'  First char = 'x'
2976  No need char  No need char
# Line 2975  No need char Line 2986  No need char
2986          End          End
2987  ------------------------------------------------------------------  ------------------------------------------------------------------
2988  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2989  No options  No options
2990  First char = 'x'  First char = 'x'
2991  No need char  No need char
# Line 2983  No need char Line 2993  No need char
2993  /(x)*+/DZ  /(x)*+/DZ
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995          Bra          Bra
2996          Once          Braposzero
2997          Brazero          CBraPos 1
         CBra 1  
2998          x          x
2999          KetRmax          KetRpos
         Ket  
3000          Ket          Ket
3001          End          End
3002  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2999  No need char Line 3007  No need char
3007    
3008  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3009  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3010  Options: anchored  Options: anchored
3011  No first char  No first char
3012  No need char  No need char
# Line 3013  No match Line 3020  No match
3020    
3021  /(\d++)(\w)/I  /(\d++)(\w)/I
3022  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3023  No options  No options
3024  No first char  No first char
3025  No need char  No need char
# Line 3028  No match Line 3034  No match
3034    
3035  /a++b/I  /a++b/I
3036  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3037  No options  No options
3038  First char = 'a'  First char = 'a'
3039  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 3042  Need char = 'b'
3042    
3043  /(a++b)/I  /(a++b)/I
3044  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3045  No options  No options
3046  First char = 'a'  First char = 'a'
3047  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 3051  Need char = 'b'
3051    
3052  /(a++)b/I  /(a++)b/I
3053  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3054  No options  No options
3055  First char = 'a'  First char = 'a'
3056  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 3060  Need char = 'b'
3060    
3061  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3062  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3063  No options  No options
3064  No first char  No first char
3065  No need char  No need char
# Line 3067  No need char Line 3069  No need char
3069    
3070  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3071  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3072  No options  No options
3073  First char = '('  First char = '('
3074  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3131  Failed: nothing to repeat at offset 7
3131          End          End
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3134  No options  No options
3135  First char = 'x'  First char = 'x'
3136  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3147  Need char = 'b'
3147          End          End
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3150  Options: ungreedy  Options: ungreedy
3151  First char = 'x'  First char = 'x'
3152  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3175  Need char = 'b'
3175          End          End
3176  ------------------------------------------------------------------  ------------------------------------------------------------------
3177  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3178  Options: anchored  Options: anchored
3179  No first char  No first char
3180  No need char  No need char
# Line 3192  No need char Line 3190  No need char
3190          End          End
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3193  Options: anchored  Options: anchored
3194  No first char  No first char
3195  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3207  Need char = 'b'
3207          End          End
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3210  Options: anchored  Options: anchored
3211  No first char  No first char
3212  Need char = 'b'  Need char = 'b'
# Line 3225  Failed: POSIX collating elements are not Line 3221  Failed: POSIX collating elements are not
3221  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
3222    
3223  /\l/I  /\l/I
3224  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
3225    
3226  /\L/I  /\L/I
3227  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
3228    
3229  /\N{name}/I  /\N{name}/I
3230  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
3231    
3232  /\u/I  /\u/I
3233  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
3234    
3235  /\U/I  /\U/I
3236  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
3237    
3238  /[/I  /[/I
3239  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3286  No need char Line 3282  No need char
3282    
3283  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3285  Options: extended  Options: extended
3286  First char = '<'  First char = '<'
3287  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3331  Need char = 'X'
3331  /(.*)\d+\1/I  /(.*)\d+\1/I
3332  Capturing subpattern count = 1  Capturing subpattern count = 1
3333  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3334  No options  No options
3335  No first char  No first char
3336  No need char  No need char
3337    
3338  /(.*)\d+/I  /(.*)\d+/I
3339  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3340  No options  No options
3341  First char at start or follows newline  First char at start or follows newline
3342  No need char  No need char
# Line 3351  No need char Line 3344  No need char
3344  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3345  Capturing subpattern count = 1  Capturing subpattern count = 1
3346  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3347  Options: dotall  Options: dotall
3348  No first char  No first char
3349  No need char  No need char
3350    
3351  /(.*)\d+/Is  /(.*)\d+/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3353  Options: anchored dotall  Options: anchored dotall
3354  No first char  No first char
3355  No need char  No need char
# Line 3366  No need char Line 3357  No need char
3357  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3358  Capturing subpattern count = 2  Capturing subpattern count = 2
3359  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3360  No options  No options
3361  First char at start or follows newline  First char at start or follows newline
3362  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3364  Need char = 'z'
3364  /((.*))\d+\1/I  /((.*))\d+\1/I
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3367  No options  No options
3368  No first char  No first char
3369  No need char  No need char
# Line 3391  Need char = 'b' Line 3380  Need char = 'b'
3380    
3381  /(?=a).*/I  /(?=a).*/I
3382  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3383  No options  No options
3384  First char = 'a'  First char = 'a'
3385  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  No options  No options
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: a b  Starting byte set: a b
3490    
3491  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3505  Capturing subpattern count = 0
3505  No options  No options
3506  No first char  No first char
3507  Need char = '6'  Need char = '6'
3508    Subject length lower bound = 4
3509  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
3510    
3511  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3539  Capturing subpattern count = 0
3539  Options: caseless  Options: caseless
3540  No first char  No first char
3541  No need char  No need char
3542    Subject length lower bound = 1
3543  Starting byte set: A B a b  Starting byte set: A B a b
3544    
3545  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3547  Capturing subpattern count = 0
3547  No options  No options
3548  No first char  No first char
3549  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3550    Subject length lower bound = 3
3551  Starting byte set: a b  Starting byte set: a b
3552    
3553  /abc(?C)def/I  /abc(?C)def/I
# Line 3591  Need char = 'f' Line 3583  Need char = 'f'
3583    1    ^    ^     f    1    ^    ^     f
3584   0: abcdef   0: abcdef
3585    
3586  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3587    Capturing subpattern count = 0
3588    No options
3589    No first char
3590    Need char = 'f'
3591    Subject length lower bound = 7
3592    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593        1234abcdef
3594    --->1234abcdef
3595      1 ^              \d
3596      1  ^             \d
3597      1   ^            \d
3598      1    ^           \d
3599      2    ^   ^       d
3600     0: 4abcdef
3601        *** Failers
3602    No match
3603        abcdef
3604    No match
3605    
3606    /(?C1)\dabc(?C2)def/ISS
3607  Capturing subpattern count = 0  Capturing subpattern count = 0
3608  No options  No options
3609  No first char  No first char
# Line 3713  No need char Line 3725  No need char
3725    
3726  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3727  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3728  No options  No options
3729  No first char  No first char
3730  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3853  Callout 0: last capture = 1
3853    
3854  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3855  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3856  No options  No options
3857  First char = 'a'  First char = 'a'
3858  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3878  No match
3878    
3879  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3880  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3881  No options  No options
3882  First char = 'a'  First char = 'a'
3883  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3918  Capturing subpattern count = 0
3918  No options  No options
3919  No first char  No first char
3920  No need char  No need char
3921    Subject length lower bound = 1
3922  Starting byte set: a b  Starting byte set: a b
3923    
3924  /(?R)/I  /(?R)/I
# Line 3997  Need char = '<' Line 4007  Need char = '<'
4007          Bra          Bra
4008          CBra 1          CBra 1
4009          a          a
         Once  
4010          Recurse          Recurse
         Ket  
4011          b          b
4012          Ket          Ket
4013          Ket          Ket
# Line 4028  No options Line 4036  No options
4036  First char = 'a'  First char = 'a'
4037  Need char = 'b'  Need char = 'b'
4038    
 /^\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  
   
4039  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4040  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4041  Options: anchored  Options: anchored
4042  No first char  No first char
4043  No need char  No need char
# Line 4105  No match Line 4078  No match
4078    
4079  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4080  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4081  Options: extended  Options: extended
4082  First char = '<'  First char = '<'
4083  Need char = '>'  Need char = '>'
# Line 4256  Need char = 'a' Line 4228  Need char = 'a'
4228          Any          Any
4229          \1          \1
4230          bbb          bbb
         Once  
4231          Recurse          Recurse
         Ket  
4232          d          d
4233          Ket          Ket
4234          End          End
# Line 4279  Named capturing subpatterns: Line 4249  Named capturing subpatterns:
4249    one     1    one     1
4250    three   3    three   3
4251    two     2    two     2
 Partial matching not supported  
4252  Options: anchored caseless  Options: anchored caseless
4253  No first char  No first char
4254  No need char  No need char
# Line 4325  No need char Line 4294  No need char
4294    
4295  /(.*)a/Is  /(.*)a/Is
4296  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4297  Options: anchored dotall  Options: anchored dotall
4298  No first char  No first char
4299  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4301  Need char = 'a'
4301  /(.*)a\1/Is  /(.*)a\1/Is
4302  Capturing subpattern count = 1  Capturing subpattern count = 1
4303  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4304  Options: dotall  Options: dotall
4305  No first char  No first char
4306  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4308  Need char = 'a'
4308  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4309  Capturing subpattern count = 2  Capturing subpattern count = 2
4310  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4311  Options: anchored dotall  Options: anchored dotall
4312  No first char  No first char
4313  Need char = 'b'  Need char = 'b'
4314    
4315  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4316  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4317  Options: anchored dotall  Options: anchored dotall
4318  No first char  No first char
4319  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4321  Need char = 'z'
4321  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4322  Capturing subpattern count = 3  Capturing subpattern count = 3
4323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4324  Options: dotall  Options: dotall
4325  No first char  No first char
4326  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4328  Need char = 'z'
4328  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4329  Capturing subpattern count = 3  Capturing subpattern count = 3
4330  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4331  Options: dotall  Options: dotall
4332  No first char  No first char
4333  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4335  Need char = 'z'
4335  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4336  Capturing subpattern count = 3  Capturing subpattern count = 3
4337  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4338  Options: dotall  Options: dotall
4339  No first char  No first char
4340  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4342  Need char = 'z'
4342  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4343  Capturing subpattern count = 3  Capturing subpattern count = 3
4344  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4345  Options: anchored dotall  Options: anchored dotall
4346  No first char  No first char
4347  Need char = 'z'  Need char = 'z'
4348    
4349  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4350  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4351  Options: anchored dotall  Options: anchored dotall
4352  No first char  No first char
4353  No need char  No need char
# Line 4395  No need char Line 4355  No need char
4355  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4356  Capturing subpattern count = 31  Capturing subpattern count = 31
4357  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4358  Options: dotall  Options: dotall
4359  No first char  No first char
4360  No need char  No need char
# Line 4403  No need char Line 4362  No need char
4362  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4363  Capturing subpattern count = 32  Capturing subpattern count = 32
4364  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4365  Options: dotall  Options: dotall
4366  No first char  No first char
4367  No need char  No need char
# Line 4470  Need char = 'c' Line 4428  Need char = 'c'
4428    
4429  /(a+)*zz/I  /(a+)*zz/I
4430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4431  No options  No options
4432  No first char  No first char
4433  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4564  Failed: two named subpatterns have the s
4564  Capturing subpattern count = 3  Capturing subpattern count = 3
4565  Named capturing subpatterns:  Named capturing subpatterns:
4566    elem   2    elem   2
 Partial matching not supported  
4567  No options  No options
4568  First char = '['  First char = '['
4569  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4581  No match
4581  Capturing subpattern count = 3  Capturing subpattern count = 3
4582  Named capturing subpatterns:  Named capturing subpatterns:
4583    elem   2    elem   2
 Partial matching not supported  
4584  No options  No options
4585  First char = '['  First char = '['
4586  Need char = ']'  Need char = ']'
# Line 4645  Need char = ']' Line 4600  Need char = ']'
4600          a          a
4601          CBra 2          CBra 2
4602          b          b
         Once  
4603          Recurse          Recurse
         Ket  
4604          c          c
4605          Ket          Ket
4606          Ket          Ket
# Line 4667  No need char Line 4620  No need char
4620          a          a
4621          CBra 2          CBra 2
4622          b          b
         Once  
4623          Recurse          Recurse
         Ket  
4624          c          c
4625          Ket          Ket
4626          KetRmax          KetRmax
# Line 4690  No need char Line 4641  No need char
4641          a          a
4642          CBra 2          CBra 2
4643          b          b
         Once  
4644          Recurse          Recurse
         Ket  
4645          c          c
4646          Ket          Ket
4647          Ket          Ket
# Line 4701  No need char Line 4650  No need char
4650          a          a
4651          CBra 2          CBra 2
4652          b          b
         Once  
4653          Recurse          Recurse
         Ket  
4654          c          c
4655          Ket          Ket
4656          Ket          Ket
# Line 4732  No need char Line 4679  No need char
4679    
4680  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4681  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4682  Options: caseless  Options: caseless
4683  No first char  No first char
4684  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4688  Need char = 'g' (caseless)
4688    
4689  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4690  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4691  Options: caseless  Options: caseless
4692  No first char  No first char
4693  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4694  Study returned NULL  Subject length lower bound = 8
4695    No set of starting bytes
4696       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4697   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4707  Study returned NULL
4707          End          End
4708  ------------------------------------------------------------------  ------------------------------------------------------------------
4709  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4710  No options  No options
4711  No first char  No first char
4712  Need char = 'b'  Need char = 'b'
4713  Study returned NULL  Subject length lower bound = 1
4714    No set of starting bytes
4715    
4716  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4717  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4731  Capturing subpattern count = 1
4731  No options  No options
4732  No first char  No first char
4733  Need char = 'c'  Need char = 'c'
4734  Study returned NULL  Subject length lower bound = 1
4735    No set of starting bytes
4736    
4737  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4738  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4842  Need char = 'e' Line 4789  Need char = 'e'
4789   +4 ^   ^      e   +4 ^   ^      e
4790  No match  No match
4791    
4792  /a*b/ICDZ  /a*b/ICDZS
4793    ------------------------------------------------------------------
4794            Bra
4795            Callout 255 0 2
4796            a*+
4797            Callout 255 2 1
4798            b
4799            Callout 255 3 0
4800            Ket
4801            End
4802    ------------------------------------------------------------------
4803    Capturing subpattern count = 0
4804    Options:
4805    No first char
4806    Need char = 'b'
4807    Subject length lower bound = 1
4808    Starting byte set: a b
4809      ab
4810    --->ab
4811     +0 ^      a*
4812     +2 ^^     b
4813     +3 ^ ^
4814     0: ab
4815      aaaab
4816    --->aaaab
4817     +0 ^         a*
4818     +2 ^   ^     b
4819     +3 ^    ^
4820     0: aaaab
4821      aaaacb
4822    --->aaaacb
4823     +0 ^          a*
4824     +2 ^   ^      b
4825     +0  ^         a*
4826     +2  ^  ^      b
4827     +0   ^        a*
4828     +2   ^ ^      b
4829     +0    ^       a*
4830     +2    ^^      b
4831     +0      ^     a*
4832     +2      ^     b
4833     +3      ^^
4834     0: b
4835    
4836    /a*b/ICDZSS
4837  ------------------------------------------------------------------  ------------------------------------------------------------------
4838          Bra          Bra
4839          Callout 255 0 2          Callout 255 0 2
# Line 4854  No match Line 4845  No match
4845          End          End
4846  ------------------------------------------------------------------  ------------------------------------------------------------------
4847  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4848  Options:  Options:
4849  No first char  No first char
4850  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4889  Need char = 'b'
4889          End          End
4890  ------------------------------------------------------------------  ------------------------------------------------------------------
4891  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4892  Options:  Options:
4893  First char = 'a'  First char = 'a'
4894  Need char = 'b'  Need char = 'b'
# Line 4927  Need char = 'b' Line 4916  Need char = 'b'
4916   +2    ^^      b   +2    ^^      b
4917  No match  No match
4918    
4919  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4920    ------------------------------------------------------------------
4921            Bra
4922            Callout 255 0 9
4923            CBra 1
4924            Callout 255 1 1
4925            a
4926            Callout 255 2 1
4927            b
4928            Callout 255 3 1
4929            c
4930            Callout 255 4 0
4931            Alt
4932            Callout 255 5 1
4933            d
4934            Callout 255 6 1
4935            e
4936            Callout 255 7 1
4937            f
4938            Callout 255 8 0
4939            Ket
4940            Callout 255 9 1
4941            x
4942            Callout 255 10 0
4943            Ket
4944            End
4945    ------------------------------------------------------------------
4946    Capturing subpattern count = 1
4947    Options:
4948    No first char
4949    Need char = 'x'
4950    Subject length lower bound = 4
4951    Starting byte set: a d
4952      abcx
4953    --->abcx
4954     +0 ^        (abc|def)
4955     +1 ^        a
4956     +2 ^^       b
4957     +3 ^ ^      c
4958     +4 ^  ^     |
4959     +9 ^  ^     x
4960    +10 ^   ^
4961     0: abcx
4962     1: abc
4963      defx
4964    --->defx
4965     +0 ^        (abc|def)
4966     +1 ^        a
4967     +5 ^        d
4968     +6 ^^       e
4969     +7 ^ ^      f
4970     +8 ^  ^     )
4971     +9 ^  ^     x
4972    +10 ^   ^
4973     0: defx
4974     1: def
4975      ** Failers
4976    No match
4977      abcdefzx
4978    --->abcdefzx
4979     +0 ^            (abc|def)
4980     +1 ^            a
4981     +2 ^^           b
4982     +3 ^ ^          c
4983     +4 ^  ^         |
4984     +9 ^  ^         x
4985     +5 ^            d
4986     +0    ^         (abc|def)
4987     +1    ^         a
4988     +5    ^         d
4989     +6    ^^        e
4990     +7    ^ ^       f
4991     +8    ^  ^      )
4992     +9    ^  ^      x
4993    No match
4994    
4995    /(abc|def)x/ICDZSS
4996  ------------------------------------------------------------------  ------------------------------------------------------------------
4997          Bra          Bra
4998          Callout 255 0 9          Callout 255 0 9
# Line 4981  Need char = 'x' Line 5046  Need char = 'x'
5046  +10 ^   ^  +10 ^   ^
5047   0: defx   0: defx
5048   1: def   1: def
5049      ** Failers
5050    No match
5051    abcdefzx    abcdefzx
5052  --->abcdefzx  --->abcdefzx
5053   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 5081  No need char Line 5148  No need char
5148   0: abcdcdcd   0: abcdcdcd
5149   1: cd   1: cd
5150    
5151  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5152  ------------------------------------------------------------------  ------------------------------------------------------------------
5153          Bra          Bra
5154          Callout 255 0 14          Callout 255 0 14
# Line 5114  Capturing subpattern count = 1 Line 5181  Capturing subpattern count = 1
5181  Options:  Options:
5182  No first char  No first char
5183  No need char  No need char
5184    Subject length lower bound = 2
5185    Starting byte set: a b x
5186      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5187  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
  +0 ^                                                ([ab]{,4}c|xy)  
  +1 ^                                                [ab]  
 +11 ^                                                x  
  +0  ^                                               ([ab]{,4}c|xy)  
  +1  ^                                               [ab]  
 +11  ^                                               x  
  +0   ^                                              ([ab]{,4}c|xy)  
  +1   ^                                              [ab]  
 +11   ^                                              x  
  +0    ^                                             ([ab]{,4}c|xy)  
  +1    ^                                             [ab]  
 +11    ^                                             x  
  +0     ^                                            ([ab]{,4}c|xy)  
  +1     ^                                            [ab]  
 +11     ^                                            x  
  +0      ^                                           ([ab]{,4}c|xy)  
  +1      ^                                           [ab]  
 +11      ^                                           x  
  +0       ^                                          ([ab]{,4}c|xy)  
  +1       ^                                          [ab]  
 +11       ^                                          x  
  +0        ^                                         ([ab]{,4}c|xy)  
  +1        ^                                         [ab]  
 +11        ^                                         x  
5188   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5189   +1         ^                                        [ab]   +1         ^                                        [ab]
5190   +5         ^^                                       {   +5         ^^                                       {
5191  +11         ^                                        x  +11         ^                                        x
5192   +0          ^                                       ([ab]{,4}c|xy)   +0                                 ^                ([ab]{,4}c|xy)
5193   +1          ^                                       [ab]   +1                                 ^                [ab]
5194  +11          ^                                       x   +5                                 ^^               {
5195    +11                                 ^                x
5196     +0                                     ^            ([ab]{,4}c|xy)
5197     +1                                     ^            [ab]
5198     +5                                     ^^           {
5199    +11                                     ^            x
5200    No match
5201    
5202    /([ab]{,4}c|xy)/ICDZSS
5203    ------------------------------------------------------------------
5204            Bra
5205            Callout 255 0 14
5206            CBra 1
5207            Callout 255 1 4
5208            [ab]
5209            Callout 255 5 1
5210            {
5211            Callout 255 6 1
5212            ,
5213            Callout 255 7 1
5214            4
5215            Callout 255 8 1
5216            }
5217            Callout 255 9 1
5218            c
5219            Callout 255 10 0
5220            Alt
5221            Callout 255 11 1
5222            x
5223            Callout 255 12 1
5224            y
5225            Callout 255 13 0
5226            Ket
5227            Callout 255 14 0
5228            Ket
5229            End
5230    ------------------------------------------------------------------
5231    Capturing subpattern count = 1
5232    Options:
5233    No first char
5234    No need char
5235        Note: that { does NOT introduce a quantifier
5236    --->Note: that { does NOT introduce a quantifier
5237     +0 ^                                                ([ab]{,4}c|xy)
5238     +1 ^                                                [ab]
5239    +11 ^                                                x
5240     +0  ^                                               ([ab]{,4}c|xy)
5241     +1  ^                                               [ab]
5242    +11  ^                                               x
5243     +0   ^                                              ([ab]{,4}c|xy)
5244     +1   ^                                              [ab]
5245    +11   ^                                              x
5246     +0    ^                                             ([ab]{,4}c|xy)
5247     +1    ^                                             [ab]
5248    +11    ^                                             x
5249     +0     ^                                            ([ab]{,4}c|xy)
5250     +1     ^                                            [ab]
5251    +11     ^                                            x
5252     +0      ^                                           ([ab]{,4}c|xy)
5253     +1      ^                                           [ab]
5254    +11      ^                                           x
5255     +0       ^                                          ([ab]{,4}c|xy)
5256     +1       ^                                          [ab]
5257    +11       ^                                          x
5258     +0        ^                                         ([ab]{,4}c|xy)
5259     +1        ^                                         [ab]
5260    +11        ^                                         x
5261     +0         ^                                        ([ab]{,4}c|xy)
5262     +1         ^                                        [ab]
5263     +5         ^^                                       {
5264    +11         ^                                        x
5265     +0          ^                                       ([ab]{,4}c|xy)
5266     +1          ^                                       [ab]
5267    +11          ^                                       x
5268   +0           ^                                      ([ab]{,4}c|xy)   +0           ^                                      ([ab]{,4}c|xy)
5269   +1           ^                                      [ab]   +1           ^                                      [ab]
5270  +11           ^                                      x  +11           ^                                      x
# Line 5337  No match Line 5455  No match
5455          End          End
5456  ------------------------------------------------------------------  ------------------------------------------------------------------
5457  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5458  Options:  Options:
5459  No first char  No first char
5460  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5486  Need char = '3'
5486    
5487  /\b.*/I  /\b.*/I
5488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5489  No options  No options
5490  No first char  No first char
5491  No need char  No need char
# Line 5378  No need char Line 5494  No need char
5494    
5495  /\b.*/Is  /\b.*/Is
5496  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5497  Options: dotall  Options: dotall
5498  No first char  No first char
5499  No need char  No need char
# Line 5387  No need char Line 5502  No need char
5502    
5503  /(?!.bcd).*/I  /(?!.bcd).*/I
5504  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5505  No options  No options
5506  No first char  No first char
5507  No need char  No need char
# Line 5400  No options Line 5514  No options
5514  First char = 'a'  First char = 'a'
5515  Need char = 'e'  Need char = 'e'
5516      ab\P      ab\P
5517  Partial match  Partial match: ab
5518      abc\P      abc\P
5519  Partial match  Partial match: abc
5520      abcd\P      abcd\P
5521  Partial match  Partial match: abcd
5522      abcde\P      abcde\P
5523   0: abcde   0: abcde
5524      the quick brown abc\P      the quick brown abc\P
5525  Partial match  Partial match: abc
5526      ** Failers\P      ** Failers\P
5527  No match  No match
5528      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5547  Need char = '/'
5547   1: 02   1: 02
5548   2: 05   2: 05
5549      1\P      1\P
5550  Partial match  Partial match: 1
5551      1/2\P      1/2\P
5552  Partial match  Partial match: 1/2
5553      1/2/0\P      1/2/0\P
5554  Partial match  Partial match: 1/2/0
5555      1/2/04\P      1/2/04\P
5556   0: 1/2/04   0: 1/2/04
5557   1: 1   1: 1
5558   2: 2   2: 2
5559      0\P      0\P
5560  Partial match  Partial match: 0
5561      02/\P      02/\P
5562  Partial match  Partial match: 02/
5563      02/0\P      02/0\P
5564  Partial match  Partial match: 02/0
5565      02/1\P      02/1\P
5566  Partial match  Partial match: 02/1
5567      ** Failers\P      ** Failers\P
5568  No match  No match
5569      \P      \P
# Line 5471  No match Line 5585  No match
5585    
5586  /0{0,2}ABC/I  /0{0,2}ABC/I
5587  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5588  No options  No options
5589  No first char  No first char
5590  Need char = 'C'  Need char = 'C'
5591    
5592  /\d{3,}ABC/I  /\d{3,}ABC/I
5593  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5594  No options  No options
5595  No first char  No first char
5596  Need char = 'C'  Need char = 'C'
5597    
5598  /\d*ABC/I  /\d*ABC/I
5599  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5600  No options  No options
5601  No first char  No first char
5602  Need char = 'C'  Need char = 'C'
5603    
5604  /[abc]+DE/I  /[abc]+DE/I
5605  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5606  No options  No options
5607  No first char  No first char
5608  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5615  Need char = '3'
5615      123\P      123\P
5616   0: 123   0: 123
5617      a\P      a\P
5618  Partial match  Partial match: a
5619      b\P      b\P
5620  Partial match  Partial match: b
5621      c\P      c\P
5622  Partial match  Partial match: c
5623      c12\P      c12\P
5624  Partial match  Partial match: c12
5625      c123\P      c123\P
5626   0: c123   0: c123
5627    
# Line 5521  Options: anchored Line 5631  Options: anchored
5631  No first char  No first char
5632  Need char = 'X'  Need char = 'X'
5633      1\P      1\P
5634  Partial match  Partial match: 1
5635      123\P      123\P
5636  Partial match  Partial match: 123
5637      123X      123X
5638   0: 123X   0: 123X
5639      1234\P      1234\P
5640  Partial match  Partial match: 1234
5641      1234X      1234X
5642   0: 1234X   0: 1234X
5643      12345\P      12345\P
5644  Partial match  Partial match: 12345
5645      12345X      12345X
5646   0: 12345X   0: 12345X
5647      *** Failers      *** Failers
# Line 5541  No match Line 5651  No match
5651      123456\P      123456\P
5652  No match  No match
5653    
5654  /abc/I>testsavedregex  /abc/IS>testsavedregex
5655    Capturing subpattern count = 0
5656    No options
5657    First char = 'a'
5658    Need char = 'c'
5659    Subject length lower bound = 3
5660    No set of starting bytes
5661    Compiled pattern written to testsavedregex
5662    Study data written to testsavedregex
5663    <testsavedregex
5664    Compiled pattern loaded from testsavedregex
5665    Study data loaded from testsavedregex
5666        abc
5667     0: abc
5668        ** Failers
5669    No match
5670        bca
5671    No match
5672    
5673    /abc/ISS>testsavedregex
5674  Capturing subpattern count = 0  Capturing subpattern count = 0
5675  No options  No options
5676  First char = 'a'  First char = 'a'
5677  Need char = 'c'  Need char = 'c'
5678  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5679  <testsavedregex  <testsavedregex
5680  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5681  No study data  No study data
5682      abc      abc
5683   0: abc   0: abc
# Line 5557  No match Line 5686  No match
5686      bca      bca
5687  No match  No match
5688    
5689  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5690    Capturing subpattern count = 0
5691    No options
5692    First char = 'a'
5693    Need char = 'c'
5694    Subject length lower bound = 3
5695    No set of starting bytes
5696    Compiled pattern written to testsavedregex
5697    Study data written to testsavedregex
5698    <testsavedregex
5699    Compiled pattern (byte-inverted) loaded from testsavedregex
5700    Study data loaded from testsavedregex
5701        abc
5702     0: abc
5703        ** Failers
5704    No match
5705        bca
5706    No match
5707    
5708    /abc/IFSS>testsavedregex
5709  Capturing subpattern count = 0  Capturing subpattern count = 0
5710  No options  No options
5711  First char = 'a'  First char = 'a'
5712  Need char = 'c'  Need char = 'c'
5713  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5714  <testsavedregex  <testsavedregex
5715  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5716  No study data  No study data
5717      abc      abc
5718   0: abc   0: abc
# Line 5578  Capturing subpattern count = 1 Line 5726  Capturing subpattern count = 1
5726  No options  No options
5727  No first char  No first char
5728  No need char  No need char
5729    Subject length lower bound = 1
5730  Starting byte set: a b  Starting byte set: a b
5731  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5732  Study data written to testsavedregex  Study data written to testsavedregex
5733  <testsavedregex  <testsavedregex
5734  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5735  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5736      abc      abc
5737   0: a   0: a
# Line 5593  Study data loaded from testsavedregex Line 5742  Study data loaded from testsavedregex
5742      def      def
5743  No match  No match
5744    
5745    /(a|b)/ISS>testsavedregex
5746    Capturing subpattern count = 1
5747    No options
5748    No first char
5749    No need char
5750    Compiled pattern written to testsavedregex
5751    <testsavedregex
5752    Compiled pattern loaded from testsavedregex
5753    No study data
5754        abc
5755     0: a
5756     1: a
5757        ** Failers
5758     0: a
5759     1: a
5760        def
5761    No match
5762    
5763  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5764  Capturing subpattern count = 1  Capturing subpattern count = 1
5765  No options  No options
5766  No first char  No first char
5767  No need char  No need char
5768    Subject length lower bound = 1
5769  Starting byte set: a b  Starting byte set: a b
5770  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5771  Study data written to testsavedregex  Study data written to testsavedregex
5772  <testsavedregex  <testsavedregex
5773  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5774  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5775      abc      abc
5776   0: a   0: a
# Line 5613  Study data loaded from testsavedregex Line 5781  Study data loaded from testsavedregex
5781      def      def
5782  No match  No match
5783    
5784    /(a|b)/ISSF>testsavedregex
5785    Capturing subpattern count = 1
5786    No options
5787    No first char
5788    No need char
5789    Compiled pattern written to testsavedregex
5790    <testsavedregex
5791    Compiled pattern (byte-inverted) loaded from testsavedregex
5792    No study data
5793        abc
5794     0: a
5795     1: a
5796        ** Failers
5797     0: a
5798     1: a
5799        def
5800    No match
5801    
5802  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5803  Capturing subpattern count = 3  Capturing subpattern count = 3
5804  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5805  Options: multiline dotall  Options: multiline dotall
5806  First char = '<'  First char = '<'
5807  Need char = '>'  Need char = '>'
5808      <!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>
5809   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>
5810   1: seite   1: seite
5811   2: \x0a   2: \x0a
# Line 5669  No match Line 5854  No match
5854      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5855  No match  No match
5856    
5857  /ab.cd/IP  /ab.cd/P
5858      ab-cd      ab-cd
5859   0: ab-cd   0: ab-cd
5860      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5864  No match: POSIX code 17: match failed
5864      ab\ncd      ab\ncd
5865  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5866    
5867  /ab.cd/IPs  /ab.cd/Ps
5868      ab-cd      ab-cd
5869   0: ab-cd   0: ab-cd
5870      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 6108  Matched, but too many substrings
6108    
6109  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6110  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6111  No options  No options
6112  No first char  No first char
6113  No need char  No need char
# Line 5936  No need char Line 6120  No need char
6120    
6121  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6123  No options  No options
6124  No first char  No first char
6125  No need char  No need char
# Line 5947  No need char Line 6130  No need char
6130    
6131  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6132  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6133  No options  No options
6134  No first char  No first char
6135  No need char  No need char
# Line 5958  No need char Line 6140  No need char
6140    
6141  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6142  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6143  No options  No options
6144  No first char  No first char
6145  No need char  No need char
# Line 5971  No need char Line 6152  No need char
6152    
6153  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6154  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6155  No options  No options
6156  No first char  No first char
6157  No need char  No need char
# Line 5984  No need char Line 6164  No need char
6164      ((this))      ((this))
6165   0: ((this))   0: ((this))
6166    
6167  /a(b)c/IPN  /a(b)c/PN
6168      abc      abc
6169  Matched with REG_NOSUB  Matched with REG_NOSUB
6170    
6171  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
6172      abc      abc
6173  Matched with REG_NOSUB  Matched with REG_NOSUB
6174    
# Line 6313  Failed: octal value is greater than \377 Line 6493  Failed: octal value is greater than \377
6493    
6494  /\s*,\s*/IS  /\s*,\s*/IS
6495  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6496  No options  No options
6497  No first char  No first char
6498  Need char = ','  Need char = ','
6499    Subject length lower bound = 1
6500  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501      \x0b,\x0b      \x0b,\x0b
6502   0: ,   0: ,
# Line 6443  Unknown newline type at: <bad> Line 6623  Unknown newline type at: <bad>
6623    
6624  /.*/I<lf>  /.*/I<lf>
6625  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6626  Options:  Options:
6627  Forced newline sequence: LF  Forced newline sequence: LF
6628  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6648  No need char
6648    
6649  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6650  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6651  Options: dotall  Options: dotall
6652  No first char  No first char
6653  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6664  Need char = 'f'
6664    
6665  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6666  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6667  No options  No options
6668  No first char  No first char
6669  No need char  No need char
# Line 6621  No need char Line 6798  No need char
6798    
6799  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6800  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6801  No options  No options
6802  No first char  No first char
6803  No need char  No need char
6804    Subject length lower bound = 1
6805  Starting byte set: C a b c d  Starting byte set: C a b c d
6806    
6807  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6809  Capturing subpattern count = 1
6809  No options  No options
6810  No first char  No first char
6811  Need char = 'z'  Need char = 'z'
6812    Subject length lower bound = 4
6813  Starting byte set: a b  Starting byte set: a b
6814    
6815  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6817  Capturing subpattern count = 1
6817  No options  No options
6818  No first char  No first char
6819  Need char = 'z'  Need char = 'z'
6820    Subject length lower bound = 4
6821  Starting byte set: a b  Starting byte set: a b
6822    
6823  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6825  Capturing subpattern count = 1
6825  No options  No options
6826  No first char  No first char
6827  Need char = 'z'  Need char = 'z'
6828    Subject length lower bound = 4
6829  Starting byte set: a b c  Starting byte set: a b c
6830    
6831  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6833  Capturing subpattern count = 1
6833  No options  No options
6834  No first char  No first char
6835  Need char = 'z'  Need char = 'z'
6836    Subject length lower bound = 4
6837  Starting byte set: a b c  Starting byte set: a b c
6838    
6839  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6841  Capturing subpattern count = 1
6841  No options  No options
6842  No first char  No first char
6843  Need char = 'z'  Need char = 'z'
6844    Subject length lower bound = 4
6845  Starting byte set: a b c d  Starting byte set: a b c d
6846    
6847  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6849  Capturing subpattern count = 1
6849  No options  No options
6850  No first char  No first char
6851  Need char = 'z'  Need char = 'z'
6852    Subject length lower bound = 4
6853  Starting byte set: a b c d  Starting byte set: a b c d
6854    
6855  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6863  Starting byte set: a b c d
6863          End          End
6864  ------------------------------------------------------------------  ------------------------------------------------------------------
6865  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6866  Options: anchored  Options: anchored
6867  No first char  No first char
6868  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6878  Need char = 'b'
6878          End          End
6879  ------------------------------------------------------------------  ------------------------------------------------------------------
6880  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6881  Options: anchored  Options: anchored
6882  No first char  No first char
6883  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6893  Need char = 'b'
6893          End          End
6894  ------------------------------------------------------------------  ------------------------------------------------------------------
6895  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6896  Options: anchored  Options: anchored
6897  No first char  No first char
6898  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6908  Need char = 'b'
6908          End          End
6909  ------------------------------------------------------------------  ------------------------------------------------------------------
6910  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6911  Options: anchored  Options: anchored
6912  No first char  No first char
6913  Need char = 'A'  Need char = 'A'
# Line 6743  No match Line 6922  No match
6922  ------------------------------------------------------------------  ------------------------------------------------------------------
6923          Bra          Bra
6924          ^          ^
6925          a*       /i a*
6926       NC A       /i A
6927          \d          \d
6928          Ket          Ket
6929          End          End
6930  ------------------------------------------------------------------  ------------------------------------------------------------------
6931  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6932  Options: anchored caseless  Options: anchored caseless
6933  No first char  No first char
6934  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6939  Need char = 'A' (caseless)
6939    
6940  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6941  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6942  No options  No options
6943  No first char  No first char
6944  No need char  No need char
6945    Subject length lower bound = 1
6946  Starting byte set: a b c d  Starting byte set: a b c d
6947    
6948  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6949  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6950  No options  No options
6951  No first char  No first char
6952  No need char  No need char
6953    Subject length lower bound = 1
6954  Starting byte set: a b c d  Starting byte set: a b c d
6955    
6956  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6957  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6958  No options  No options
6959  No first char  No first char
6960  No need char  No need char
6961    Subject length lower bound = 1
6962  Starting byte set: a b c d  Starting byte set: a b c d
6963    
6964  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6965  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6966  No options  No options
6967  No first char  No first char
6968  No need char  No need char
6969    Subject length lower bound = 2
6970  Starting byte set: a b  Starting byte set: a b
6971    
6972  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7373  Matched, but too many substrings Line 7551  Matched, but too many substrings
7551  /[^a]+a/BZi  /[^a]+a/BZi
7552  ------------------------------------------------------------------  ------------------------------------------------------------------
7553          Bra          Bra
7554          [^A]++       /i [^A]++
7555       NC a       /i a
7556          Ket          Ket
7557          End          End
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7382  Matched, but too many substrings Line 7560  Matched, but too many substrings
7560  /[^a]+A/BZi  /[^a]+A/BZi
7561  ------------------------------------------------------------------  ------------------------------------------------------------------
7562          Bra          Bra
7563          [^A]++       /i [^A]++
7564       NC A       /i A
7565          Ket          Ket
7566          End          End
7567  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7578  No match Line 7756  No match
7756  ------------------------------------------------------------------  ------------------------------------------------------------------
7757          Bra          Bra
7758          ^          ^
         Once  
7759          Recurse          Recurse
         Ket  
7760          [()]          [()]
7761          CBra 1          CBra 1
7762          Ket          Ket
# Line 7594  No match Line 7770  No match
7770          ^          ^
7771          CBra 1          CBra 1
7772          Cond          Cond
7773        2 Cond ref        2 Cond nref
7774          y          y
7775          Ket          Ket
7776          [()]          [()]
# Line 7614  No match Line 7790  No match
7790  ------------------------------------------------------------------  ------------------------------------------------------------------
7791          Bra          Bra
7792          ^          ^
         Once  
7793          Recurse          Recurse
         Ket  
7794          ()          ()
7795          CBra 1          CBra 1
7796          Ket          Ket
# Line 7628  No match Line 7802  No match
7802  ------------------------------------------------------------------  ------------------------------------------------------------------
7803          Bra          Bra
7804          ^          ^
         Once  
7805          Recurse          Recurse
         Ket  
7806          [(\]a]          [(\]a]
7807          CBra 1          CBra 1
7808          Ket          Ket
# Line 7643  No match Line 7815  No match
7815  ------------------------------------------------------------------  ------------------------------------------------------------------
7816          Bra          Bra
7817          ^          ^
         Once  
7818          Recurse          Recurse
         Ket  
7819          CBra 1          CBra 1
7820          Ket          Ket
7821          Ket          Ket
# Line 7660  Named capturing subpatterns: Line 7830  Named capturing subpatterns:
7830    one     1    one     1
7831    three   3    three   3
7832    two     2    two     2
 Partial matching not supported  
7833  Options: anchored caseless  Options: anchored caseless
7834  No first char  No first char
7835  No need char  No need char
# Line 7694  No match Line 7863  No match
7863  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7864  Capturing subpattern count = 1  Capturing subpattern count = 1
7865  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7866  No options  No options
7867  No first char  No first char
7868  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7875  Capturing subpattern count = 1
7875  Max back reference = 1  Max back reference = 1
7876  Named capturing subpatterns:  Named capturing subpatterns:
7877    abc   1    abc   1
 Partial matching not supported  
7878  No options  No options
7879  No first char  No first char
7880  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7882  Need char = ':'
7882   0: abcd:   0: abcd:
7883   1: abcd   1: abcd
7884    
 /(?'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  
   
7885  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7886      adaa      adaa
7887   0: adaa   0: adaa
# Line 7755  No match Line 7908  No match
7908      bddd      bddd
7909  No match  No match
7910    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7911  /(?(<bc))/  /(?(<bc))/
7912  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7913    
# Line 7792  Failed: reference to non-existent subpat Line 7938  Failed: reference to non-existent subpat
7938   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7939   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7940    
 /^(?(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>  
   
7941  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7942  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7943    
# Line 7819  Options: extended Line 7947  Options: extended
7947  First char = 'x'  First char = 'x'
7948  Need char = 'z'  Need char = 'z'
7949    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7950  /(a|)*\d/  /(a|)*\d/
7951    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952  No match  No match
# Line 7851  No match Line 7976  No match
7976  No match  No match
7977    
7978  /^abc./mgx<any>  /^abc./mgx<any>
7979      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7980   0: abc1   0: abc1
7981   0: abc2   0: abc2
7982   0: abc3   0: abc3
# Line 7861  No match Line 7986  No match
7986   0: abc7   0: abc7
7987    
7988  /abc.$/mgx<any>  /abc.$/mgx<any>
7989      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
7990   0: abc1   0: abc1
7991   0: abc2   0: abc2
7992   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 8112  Need char = 'P'
8112   0: PXP   0: PXP
8113   1: P   1: P
8114    
 /(?(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  
   
8115  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
8116      123axbaxbaxbx456      123axbaxbaxbx456
8117   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 8149  No match
8149     DEFabcABCXYZ     DEFabcABCXYZ
8150  No match  No match
8151    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
8152  /^(a)\g-2/  /^(a)\g-2/
8153  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8154    
# Line 8163  No match Line 8242  No match
8242   0+   0+
8243    
8244  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
8245      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
8246   0: abc1   0: abc1
8247   0: abc4   0: abc4
8248   0: abc5   0: abc5
# Line 8185  No match Line 8264  No match
8264          Alt          Alt
8265          c          c
8266          Ket          Ket
         Once  
8267          Recurse          Recurse
8268          Ket          Ket
         Ket  
8269          End          End
8270  ------------------------------------------------------------------  ------------------------------------------------------------------
8271      abc      abc
# Line 8199  No match Line 8276  No match
8276  ------------------------------------------------------------------  ------------------------------------------------------------------
8277          Bra          Bra
8278          xy          xy
         Once  
8279          Recurse          Recurse
         Ket  
8280          CBra 1          CBra 1
8281          abc          abc
8282          Ket          Ket
# Line 8325  Failed: reference to non-existent subpat Line 8400  Failed: reference to non-existent subpat
8400   0: Y!   0: Y!
8401   1: !   1: !
8402    
 /(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  
   
8403  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8404      tom-tom      tom-tom
8405   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8412  No match
8412      tom-bon      tom-bon
8413  No match  No match
8414    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8415  /\g{A/  /\g{A/
8416  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8417    
# Line 8459  Failed: syntax error in subpattern name Line 8506  Failed: syntax error in subpattern name
8506   3: <unset>   3: <unset>
8507   4: x   4: x
8508    
 /(?|(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  
   
8509  /[\h]/BZ  /[\h]/BZ
8510  ------------------------------------------------------------------  ------------------------------------------------------------------
8511          Bra          Bra
# Line 8786  No match Line 8757  No match
8757  ------------------------------------------------------------------  ------------------------------------------------------------------
8758    
8759  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8760  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8761   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8762    
8763  /[\E]AAA/  /[\E]AAA/
# Line 8831  Failed: missing terminating ] for charac Line 8802  Failed: missing terminating ] for charac
8802          End          End
8803  ------------------------------------------------------------------  ------------------------------------------------------------------
8804    
8805  /^a+(*FAIL)/  /^a+(*FAIL)/C
8806      aaaaaa      aaaaaa
8807    --->aaaaaa
8808     +0 ^          ^
8809     +1 ^          a+
8810     +3 ^     ^    (*FAIL)
8811     +3 ^    ^     (*FAIL)
8812     +3 ^   ^      (*FAIL)
8813     +3 ^  ^       (*FAIL)
8814     +3 ^ ^        (*FAIL)
8815     +3 ^^         (*FAIL)
8816  No match  No match
8817    
8818  /a+b?c+(*FAIL)/  /a+b?c+(*FAIL)/C
     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  
   
 /^a+(*FAIL)/C  
     aaaaaa  
 --->aaaaaa  
  +0 ^          ^  
  +1 ^          a+  
  +3 ^     ^    (*FAIL)  
  +3 ^    ^     (*FAIL)  
  +3 ^   ^      (*FAIL)  
  +3 ^  ^       (*FAIL)  
  +3 ^ ^        (*FAIL)  
  +3 ^^         (*FAIL)  
 No match  
   
 /a+b?c+(*FAIL)/C  
8819      aaabccc      aaabccc
8820  --->aaabccc  --->aaabccc
8821   +0 ^           a+   +0 ^           a+
# Line 9040  No match Line 8930  No match
8930  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8931  No match  No match
8932    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8933  /a(*MARK)b/  /a(*MARK)b/
8934  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8935    
8936  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8937  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 8939  Failed: number is too big at offset 19
8939  /\g6666666666/  /\g6666666666/
8940  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8941    
8942  /[\g6666666666]/  /[\g6666666666]/BZ
8943  Failed: number is too big at offset 12  ------------------------------------------------------------------
8944            Bra
8945            [6g]
8946            Ket
8947            End
8948    ------------------------------------------------------------------
8949    
8950  /(?1)\c[/  /(?1)\c[/
8951  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9133  No match Line 9025  No match
9025  No match  No match
9026      a\x85b      a\x85b
9027  No match  No match
9028    
9029    /(*ANY).*/g
9030        abc\r\ndef
9031     0: abc
9032     0:
9033     0: def
9034     0:
9035    
9036    /(*ANYCRLF).*/g
9037        abc\r\ndef
9038     0: abc
9039     0:
9040     0: def
9041     0:
9042    
9043    /(*CRLF).*/g
9044        abc\r\ndef
9045     0: abc
9046     0:
9047     0: def
9048     0:
9049    
9050  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9051  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9216  No match Line 9129  No match
9129    
9130  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
9131  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9132  Options: bsr_anycrlf  Options: bsr_anycrlf
9133  First char = 'a'  First char = 'a'
9134  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 9147  No match
9147    
9148  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
9149  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9150  Options: bsr_unicode  Options: bsr_unicode
9151  First char = 'a'  First char = 'a'
9152  Need char = 'b'  Need char = 'b'
# Line 9340  Failed: subpattern name expected at offs Line 9251  Failed: subpattern name expected at offs
9251  /\k{}/  /\k{}/
9252  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9253    
9254    /\k/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256    
9257    /\kabc/
9258    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259    
9260  /(?P=)/  /(?P=)/
9261  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9262    
# Line 9385  Failed: unknown POSIX class name at offs Line 9302  Failed: unknown POSIX class name at offs
9302  /[[:a\dz:]]/  /[[:a\dz:]]/
9303  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9304    
 /^(?<name>a|b\g<name>c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(?<name>a|b\g'name'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g<1>c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'-1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
  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  
   
9305  /(^(a|b\g<-1'c))/  /(^(a|b\g<-1'c))/
9306  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9307    
 /(^(a|b\g{-1}))/  
     bacxxx  
 No match  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
  0: aa  
  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  
   
9308  /^(?+1)(?<a>x|y){0}z/  /^(?+1)(?<a>x|y){0}z/
9309      xzxx      xzxx
9310   0: xz   0: xz
  1: <unset>  
9311      yzyy      yzyy
9312   0: yz   0: yz
  1: <unset>  
9313      ** Failers      ** Failers
9314  No match  No match
9315      xxz      xxz
# Line 9631  Failed: nothing to repeat at offset 5 Line 9419  Failed: nothing to repeat at offset 5
9419  /a(*FAIL)+b/  /a(*FAIL)+b/
9420  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
9421    
9422  / End of testinput2 /  /(abc|pqr|123){0}[xyz]/SI
9423    Capturing subpattern count = 1
9424    No options
9425    No first char
9426    No need char
9427    Subject length lower bound = 1
9428    Starting byte set: x y z
9429    
9430    /(?(?=.*b)b|^)/CI
9431    Capturing subpattern count = 0
9432    Options:
9433    No first char
9434    No need char
9435       adc
9436    --->adc
9437     +0 ^       (?(?=.*b)b|^)
9438     +2 ^       (?=.*b)
9439     +5 ^       .*
9440     +7 ^  ^    b
9441     +7 ^ ^     b
9442     +7 ^^      b
9443     +7 ^       b
9444    +12 ^       )
9445    +13 ^
9446     0:
9447       abc
9448    --->abc
9449     +0 ^       (?(?=.*b)b|^)
9450     +2 ^       (?=.*b)
9451     +5 ^       .*
9452     +7 ^  ^    b
9453     +7 ^ ^     b
9454     +7 ^^      b
9455     +8 ^ ^     )
9456     +9 ^       b
9457     +0  ^      (?(?=.*b)b|^)
9458     +2  ^      (?=.*b)
9459     +5  ^      .*
9460     +7  ^ ^    b
9461     +7  ^^     b
9462     +7  ^      b
9463     +8  ^^     )
9464     +9  ^      b
9465    +10  ^^     |
9466    +13  ^^
9467     0: b
9468    
9469    /(?(?=b).*b|^d)/I
9470    Capturing subpattern count = 0
9471    No options
9472    No first char
9473    No need char
9474    
9475    /(?(?=.*b).*b|^d)/I
9476    Capturing subpattern count = 0
9477    No options
9478    First char at start or follows newline
9479    No need char
9480    
9481    /a?|b?/P
9482        abc
9483     0: a
9484        ** Failers
9485     0:
9486        ddd\N
9487    No match: POSIX code 17: match failed
9488    
9489    /xyz/C
9490      xyz
9491    --->xyz
9492     +0 ^       x
9493     +1 ^^      y
9494     +2 ^ ^     z
9495     +3 ^  ^
9496     0: xyz
9497      abcxyz
9498    --->abcxyz
9499     +0    ^       x
9500     +1    ^^      y
9501     +2    ^ ^     z
9502     +3    ^  ^
9503     0: xyz
9504      abcxyz\Y
9505    --->abcxyz
9506     +0 ^          x
9507     +0  ^         x
9508     +0   ^        x
9509     +0    ^       x
9510     +1    ^^      y
9511     +2    ^ ^     z
9512     +3    ^  ^
9513     0: xyz
9514      ** Failers
9515    No match
9516      abc
9517    No match
9518      abc\Y
9519    --->abc
9520     +0 ^       x
9521     +0  ^      x
9522     +0   ^     x
9523     +0    ^    x
9524    No match
9525      abcxypqr
9526    No match
9527      abcxypqr\Y
9528    --->abcxypqr
9529     +0 ^            x
9530     +0  ^           x
9531     +0   ^          x
9532     +0    ^         x
9533     +1    ^^        y
9534     +2    ^ ^       z
9535     +0     ^        x
9536     +0      ^       x
9537     +0       ^      x
9538     +0        ^     x
9539     +0         ^    x
9540    No match
9541    
9542    /(*NO_START_OPT)xyz/C
9543      abcxyz
9544    --->abcxyz
9545    +15 ^          x
9546    +15  ^         x
9547    +15   ^        x
9548    +15    ^       x
9549    +16    ^^      y
9550    +17    ^ ^     z
9551    +18    ^  ^
9552     0: xyz
9553    
9554    /xyz/CY
9555      abcxyz
9556    --->abcxyz
9557     +0 ^          x
9558     +0  ^         x
9559     +0   ^        x
9560     +0    ^       x
9561     +1    ^^      y
9562     +2    ^ ^     z
9563     +3    ^  ^
9564     0: xyz
9565    
9566    /^"((?(?=[a])[^"])|b)*"$/C
9567        "ab"
9568    --->"ab"
9569     +0 ^        ^
9570     +1 ^        "
9571     +2 ^^       ((?(?=[a])[^"])|b)*
9572     +3 ^^       (?(?=[a])[^"])
9573     +5 ^^       (?=[a])
9574     +8 ^^       [a]
9575    +11 ^ ^      )
9576    +12 ^^       [^"]
9577    +16 ^ ^      )
9578    +17 ^ ^      |
9579     +3 ^ ^      (?(?=[a])[^"])
9580     +5 ^ ^      (?=[a])
9581     +8 ^ ^      [a]
9582    +21 ^ ^      "
9583    +18 ^ ^      b
9584    +19 ^  ^     )
9585     +3 ^  ^     (?(?=[a])[^"])
9586     +5 ^  ^     (?=[a])
9587     +8 ^  ^     [a]
9588    +21 ^  ^     "
9589    +22 ^   ^    $
9590    +23 ^   ^
9591     0: "ab"
9592     1:
9593    
9594    /^"((?(?=[a])[^"])|b)*"$/
9595        "ab"
9596     0: "ab"
9597     1:
9598    
9599    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9600    Failed: reference to non-existent subpattern at offset 5
9601    
9602    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9603        XYabcdY
9604     0: XYabcdY
9605     1: a
9606     2: b
9607     3: c
9608     4: d
9609     5: Y
9610    
9611    /Xa{2,4}b/
9612        X\P
9613    Partial match: X
9614        Xa\P
9615    Partial match: Xa
9616        Xaa\P
9617    Partial match: Xaa
9618        Xaaa\P
9619    Partial match: Xaaa
9620        Xaaaa\P
9621    Partial match: Xaaaa
9622    
9623    /Xa{2,4}?b/
9624        X\P
9625    Partial match: X
9626        Xa\P
9627    Partial match: Xa
9628        Xaa\P
9629    Partial match: Xaa
9630        Xaaa\P
9631    Partial match: Xaaa
9632        Xaaaa\P
9633    Partial match: Xaaaa
9634    
9635    /Xa{2,4}+b/
9636        X\P
9637    Partial match: X
9638        Xa\P
9639    Partial match: Xa
9640        Xaa\P
9641    Partial match: Xaa
9642        Xaaa\P
9643    Partial match: Xaaa
9644        Xaaaa\P
9645    Partial match: Xaaaa
9646    
9647    /X\d{2,4}b/
9648        X\P
9649    Partial match: X
9650        X3\P
9651    Partial match: X3
9652        X33\P
9653    Partial match: X33
9654        X333\P
9655    Partial match: X333
9656        X3333\P
9657    Partial match: X3333
9658    
9659    /X\d{2,4}?b/
9660        X\P
9661    Partial match: X
9662        X3\P
9663    Partial match: X3
9664        X33\P
9665    Partial match: X33
9666        X333\P
9667    Partial match: X333
9668        X3333\P
9669    Partial match: X3333
9670    
9671    /X\d{2,4}+b/
9672        X\P
9673    Partial match: X
9674        X3\P
9675    Partial match: X3
9676        X33\P
9677    Partial match: X33
9678        X333\P
9679    Partial match: X333
9680        X3333\P
9681    Partial match: X3333
9682    
9683    /X\D{2,4}b/
9684        X\P
9685    Partial match: X
9686        Xa\P
9687    Partial match: Xa
9688        Xaa\P
9689    Partial match: Xaa
9690        Xaaa\P
9691    Partial match: Xaaa
9692        Xaaaa\P
9693    Partial match: Xaaaa
9694    
9695    /X\D{2,4}?b/
9696        X\P
9697    Partial match: X
9698        Xa\P
9699    Partial match: Xa
9700        Xaa\P
9701    Partial match: Xaa
9702        Xaaa\P
9703    Partial match: Xaaa
9704        Xaaaa\P
9705    Partial match: Xaaaa
9706    
9707    /X\D{2,4}+b/
9708        X\P
9709    Partial match: X
9710        Xa\P
9711    Partial match: Xa
9712        Xaa\P
9713    Partial match: Xaa
9714        Xaaa\P
9715    Partial match: Xaaa
9716        Xaaaa\P
9717    Partial match: Xaaaa
9718    
9719    /X[abc]{2,4}b/
9720        X\P
9721    Partial match: X
9722        Xa\P
9723    Partial match: Xa
9724        Xaa\P
9725    Partial match: Xaa
9726        Xaaa\P
9727    Partial match: Xaaa
9728        Xaaaa\P
9729    Partial match: Xaaaa
9730    
9731    /X[abc]{2,4}?b/
9732        X\P
9733    Partial match: X
9734        Xa\P
9735    Partial match: Xa
9736        Xaa\P
9737    Partial match: Xaa
9738        Xaaa\P
9739    Partial match: Xaaa
9740        Xaaaa\P
9741    Partial match: Xaaaa
9742    
9743    /X[abc]{2,4}+b/
9744        X\P
9745    Partial match: X
9746        Xa\P
9747    Partial match: Xa
9748        Xaa\P
9749    Partial match: Xaa
9750        Xaaa\P
9751    Partial match: Xaaa
9752        Xaaaa\P
9753    Partial match: Xaaaa
9754    
9755    /X[^a]{2,4}b/
9756        X\P
9757    Partial match: X
9758        Xz\P
9759    Partial match: Xz
9760        Xzz\P
9761    Partial match: Xzz
9762        Xzzz\P
9763    Partial match: Xzzz
9764        Xzzzz\P
9765    Partial match: Xzzzz
9766    
9767    /X[^a]{2,4}?b/
9768        X\P
9769    Partial match: X
9770        Xz\P
9771    Partial match: Xz
9772        Xzz\P
9773    Partial match: Xzz
9774        Xzzz\P
9775    Partial match: Xzzz
9776        Xzzzz\P
9777    Partial match: Xzzzz
9778    
9779    /X[^a]{2,4}+b/
9780        X\P
9781    Partial match: X
9782        Xz\P
9783    Partial match: Xz
9784        Xzz\P
9785    Partial match: Xzz
9786        Xzzz\P
9787    Partial match: Xzzz
9788        Xzzzz\P
9789    Partial match: Xzzzz
9790    
9791    /(Y)X\1{2,4}b/
9792        YX\P
9793    Partial match: YX
9794        YXY\P
9795    Partial match: YXY
9796        YXYY\P
9797    Partial match: YXYY
9798        YXYYY\P
9799    Partial match: YXYYY
9800        YXYYYY\P
9801    Partial match: YXYYYY
9802    
9803    /(Y)X\1{2,4}?b/
9804        YX\P
9805    Partial match: YX
9806        YXY\P
9807    Partial match: YXY
9808        YXYY\P
9809    Partial match: YXYY
9810        YXYYY\P
9811    Partial match: YXYYY
9812        YXYYYY\P
9813    Partial match: YXYYYY
9814    
9815    /(Y)X\1{2,4}+b/
9816        YX\P
9817    Partial match: YX
9818        YXY\P
9819    Partial match: YXY
9820        YXYY\P
9821    Partial match: YXYY
9822        YXYYY\P
9823    Partial match: YXYYY
9824        YXYYYY\P
9825    Partial match: YXYYYY
9826    
9827    /\++\KZ|\d+X|9+Y/
9828        ++++123999\P
9829    Partial match: 123999
9830        ++++123999Y\P
9831     0: 999Y
9832        ++++Z1234\P
9833     0: Z
9834    
9835    /Z(*F)/
9836        Z\P
9837    No match
9838        ZA\P
9839    No match
9840    
9841    /Z(?!)/
9842        Z\P
9843    No match
9844        ZA\P
9845    No match
9846    
9847    /dog(sbody)?/
9848        dogs\P
9849     0: dog
9850        dogs\P\P
9851    Partial match: dogs
9852    
9853    /dog(sbody)??/
9854        dogs\P
9855     0: dog
9856        dogs\P\P
9857     0: dog
9858    
9859    /dog|dogsbody/
9860        dogs\P
9861     0: dog
9862        dogs\P\P
9863     0: dog
9864    
9865    /dogsbody|dog/
9866        dogs\P
9867     0: dog
9868        dogs\P\P
9869    Partial match: dogs
9870    
9871    /\bthe cat\b/
9872        the cat\P
9873     0: the cat
9874        the cat\P\P
9875    Partial match: the cat
9876    
9877    /abc/
9878       abc\P
9879     0: abc
9880       abc\P\P
9881     0: abc
9882    
9883    /\w+A/P
9884       CDAAAAB
9885     0: CDAAAA
9886    
9887    /\w+A/PU
9888       CDAAAAB
9889     0: CDA
9890    
9891    /abc\K123/
9892        xyzabc123pqr
9893     0: 123
9894        xyzabc12\P
9895    Partial match: abc12
9896        xyzabc12\P\P
9897    Partial match: abc12
9898    
9899    /(?<=abc)123/
9900        xyzabc123pqr
9901     0: 123
9902        xyzabc12\P
9903    Partial match: abc12
9904        xyzabc12\P\P
9905    Partial match: abc12
9906    
9907    /\babc\b/
9908        +++abc+++
9909     0: abc
9910        +++ab\P
9911    Partial match: +ab
9912        +++ab\P\P
9913    Partial match: +ab
9914    
9915    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916    ------------------------------------------------------------------
9917            Bra
9918            Recurse
9919            Recurse
9920            Cond
9921            Cond def
9922            CBra 1
9923            <
9924            [^m]
9925            [^>]
9926            >
9927            [^<]
9928            Ket
9929            CBra 2
9930            \w*+
9931            Ket
9932            Ket
9933            Ket
9934            End
9935    ------------------------------------------------------------------
9936    
9937    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938    ------------------------------------------------------------------
9939            Bra
9940            Recurse
9941            Recurse
9942            Cond
9943            Cond def
9944            CBra 1
9945            <
9946            [\x00-/:-\xff] (neg)
9947            [^>]
9948            >
9949            [^<]
9950            Ket
9951            CBra 2
9952            \w*+
9953            Ket
9954            Ket
9955            Ket
9956            End
9957    ------------------------------------------------------------------
9958    
9959    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9960    ------------------------------------------------------------------
9961            Bra
9962            CBra 1
9963            ab
9964            Ket
9965            CBra 2
9966            x
9967            CBra 3
9968            y
9969            Ket
9970            z
9971            CBra 4
9972            cd
9973            Close 4
9974            Close 2
9975            *ACCEPT
9976            Ket
9977            Ket
9978            pq
9979            Ket
9980            End
9981    ------------------------------------------------------------------
9982    
9983    /abc\K/+
9984        abcdef
9985     0:
9986     0+ def
9987        abcdef\N\N
9988     0:
9989     0+ def
9990        xyzabcdef\N\N
9991     0:
9992     0+ def
9993        ** Failers
9994    No match
9995        abcdef\N
9996    No match
9997        xyzabcdef\N
9998    No match
9999    
10000    /^(?:(?=abc)|abc\K)/+
10001        abcdef
10002     0:
10003     0+ abcdef
10004        abcdef\N\N
10005     0:
10006     0+ def
10007        ** Failers
10008    No match
10009        abcdef\N
10010    No match
10011    
10012    /a?b?/+
10013        xyz
10014     0:
10015     0+ xyz
10016        xyzabc
10017     0:
10018     0+ xyzabc
10019        xyzabc\N
10020     0: ab
10021     0+ c
10022        xyzabc\N\N
10023     0:
10024     0+ yzabc
10025        xyz\N\N
10026     0:
10027     0+ yz
10028        ** Failers
10029     0:
10030     0+ ** Failers
10031        xyz\N
10032    No match
10033    
10034    /^a?b?/+
10035        xyz
10036     0:
10037     0+ xyz
10038        xyzabc
10039     0:
10040     0+ xyzabc
10041        ** Failers
10042     0:
10043     0+ ** Failers
10044        xyzabc\N
10045    No match
10046        xyzabc\N\N
10047    No match
10048        xyz\N\N
10049    No match
10050        xyz\N
10051    No match
10052    
10053    /^(?<name>a|b\g<name>c)/
10054        aaaa
10055     0: a
10056     1: a
10057        bacxxx
10058     0: bac
10059     1: bac
10060        bbaccxxx
10061     0: bbacc
10062     1: bbacc
10063        bbbacccxx
10064     0: bbbaccc
10065     1: bbbaccc
10066    
10067    /^(?<name>a|b\g'name'c)/
10068        aaaa
10069     0: a
10070     1: a
10071        bacxxx
10072     0: bac
10073     1: bac
10074        bbaccxxx
10075     0: bbacc
10076     1: bbacc
10077        bbbacccxx
10078     0: bbbaccc
10079     1: bbbaccc
10080    
10081    /^(a|b\g<1>c)/
10082        aaaa
10083     0: a
10084     1: a
10085        bacxxx
10086     0: bac
10087     1: bac
10088        bbaccxxx
10089     0: bbacc
10090     1: bbacc
10091        bbbacccxx
10092     0: bbbaccc
10093     1: bbbaccc
10094    
10095    /^(a|b\g'1'c)/
10096        aaaa
10097     0: a
10098     1: a
10099        bacxxx
10100     0: bac
10101     1: bac
10102        bbaccxxx
10103     0: bbacc
10104     1: bbacc
10105        bbbacccxx
10106     0: bbbaccc
10107     1: bbbaccc
10108    
10109    /^(a|b\g'-1'c)/
10110        aaaa
10111     0: a
10112     1: a
10113        bacxxx
10114     0: bac
10115     1: bac
10116        bbaccxxx
10117     0: bbacc
10118     1: bbacc
10119        bbbacccxx
10120     0: bbbaccc
10121     1: bbbaccc
10122    
10123    /(^(a|b\g<-1>c))/
10124        aaaa
10125     0: a
10126     1: a
10127     2: a
10128        bacxxx
10129     0: bac
10130     1: bac
10131     2: bac
10132        bbaccxxx
10133     0: bbacc
10134     1: bbacc
10135     2: bbacc