/[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 91 by nigel, Sat Feb 24 21:41:34 2007 UTC revision 93 by nigel, Sat Feb 24 21:41:42 2007 UTC
# Line 1  Line 1 
1  /(a)b|/  /(a)b|/I
2  Capturing subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
4  No first char  No first char
5  No need char  No need char
6    
7  /abc/  /abc/I
8  Capturing subpattern count = 0  Capturing subpattern count = 0
9  No options  No options
10  First char = 'a'  First char = 'a'
# Line 22  No match Line 22  No match
22      ABC      ABC
23  No match  No match
24    
25  /^abc/  /^abc/I
26  Capturing subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
# Line 38  No match Line 38  No match
38      \Adefabc      \Adefabc
39  No match  No match
40    
41  /a+bc/  /a+bc/I
42  Capturing subpattern count = 0  Capturing subpattern count = 0
43  Partial matching not supported  Partial matching not supported
44  No options  No options
45  First char = 'a'  First char = 'a'
46  Need char = 'c'  Need char = 'c'
47    
48  /a*bc/  /a*bc/I
49  Capturing subpattern count = 0  Capturing subpattern count = 0
50  Partial matching not supported  Partial matching not supported
51  No options  No options
52  No first char  No first char
53  Need char = 'c'  Need char = 'c'
54    
55  /a{3}bc/  /a{3}bc/I
56  Capturing subpattern count = 0  Capturing subpattern count = 0
57  Partial matching not supported  Partial matching not supported
58  No options  No options
59  First char = 'a'  First char = 'a'
60  Need char = 'c'  Need char = 'c'
61    
62  /(abc|a+z)/  /(abc|a+z)/I
63  Capturing subpattern count = 1  Capturing subpattern count = 1
64  Partial matching not supported  Partial matching not supported
65  No options  No options
66  First char = 'a'  First char = 'a'
67  No need char  No need char
68    
69  /^abc$/  /^abc$/I
70  Capturing subpattern count = 0  Capturing subpattern count = 0
71  Options: anchored  Options: anchored
72  No first char  No first char
# Line 78  No match Line 78  No match
78      def\nabc      def\nabc
79  No match  No match
80    
81  /ab\gdef/X  /ab\hdef/X
82  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
83    
84  /(?X)ab\gdef/X  /(?X)ab\hdef/X
85  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
86    
87  /x{5,4}/  /x{5,4}/
# Line 111  Failed: missing ) after comment at offse Line 111  Failed: missing ) after comment at offse
111  /(?z)abc/  /(?z)abc/
112  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? at offset 2
113    
114  /.*b/  /.*b/I
115  Capturing subpattern count = 0  Capturing subpattern count = 0
116  Partial matching not supported  Partial matching not supported
117  No options  No options
118  First char at start or follows newline  First char at start or follows newline
119  Need char = 'b'  Need char = 'b'
120    
121  /.*?b/  /.*?b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
123  Partial matching not supported  Partial matching not supported
124  No options  No options
125  First char at start or follows newline  First char at start or follows newline
126  Need char = 'b'  Need char = 'b'
127    
128  /cat|dog|elephant/  /cat|dog|elephant/I
129  Capturing subpattern count = 0  Capturing subpattern count = 0
130  No options  No options
131  No first char  No first char
# Line 135  No need char Line 135  No need char
135      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
136   0: elephant   0: elephant
137    
138  /cat|dog|elephant/S  /cat|dog|elephant/IS
139  Capturing subpattern count = 0  Capturing subpattern count = 0
140  No options  No options
141  No first char  No first char
# Line 146  Starting byte set: c d e Line 146  Starting byte set: c d e
146      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
147   0: elephant   0: elephant
148    
149  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
150  Capturing subpattern count = 0  Capturing subpattern count = 0
151  Options: caseless  Options: caseless
152  No first char  No first char
# Line 157  Starting byte set: C D E c d e Line 157  Starting byte set: C D E c d e
157      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
158   0: elephant   0: elephant
159    
160  /a|[bcd]/S  /a|[bcd]/IS
161  Capturing subpattern count = 0  Capturing subpattern count = 0
162  No options  No options
163  No first char  No first char
164  No need char  No need char
165  Starting byte set: a b c d  Starting byte set: a b c d
166    
167  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
168  Capturing subpattern count = 1  Capturing subpattern count = 1
169  No options  No options
170  No first char  No first char
# Line 184  Starting byte set: \x00 \x01 \x02 \x03 \ Line 184  Starting byte set: \x00 \x01 \x02 \x03 \
184    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
185    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
186    
187  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
188  Capturing subpattern count = 1  Capturing subpattern count = 1
189  No options  No options
190  No first char  No first char
# Line 197  Failed: reference to non-existent subpat Line 197  Failed: reference to non-existent subpat
197  /{4,5}abc/  /{4,5}abc/
198  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
199    
200  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
201  Capturing subpattern count = 3  Capturing subpattern count = 3
202  Max back reference = 2  Max back reference = 2
203  No options  No options
# Line 228  Matched, but too many substrings Line 228  Matched, but too many substrings
228   2: b   2: b
229   3: c   3: c
230    
231  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
232  Capturing subpattern count = 3  Capturing subpattern count = 3
233  Max back reference = 2  Max back reference = 2
234  No options  No options
# Line 270  Matched, but too many substrings Line 270  Matched, but too many substrings
270   2: a   2: a
271   3: b   3: b
272    
273  /abc$/E  /abc$/IE
274  Capturing subpattern count = 0  Capturing subpattern count = 0
275  Options: dollar_endonly  Options: dollar_endonly
276  First char = 'a'  First char = 'a'
# Line 287  No match Line 287  No match
287  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
288  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
289    
290  /the quick brown fox/  /the quick brown fox/I
291  Capturing subpattern count = 0  Capturing subpattern count = 0
292  No options  No options
293  First char = 't'  First char = 't'
# Line 297  Need char = 'x' Line 297  Need char = 'x'
297      this is a line with the quick brown fox      this is a line with the quick brown fox
298   0: the quick brown fox   0: the quick brown fox
299    
300  /the quick brown fox/A  /the quick brown fox/IA
301  Capturing subpattern count = 0  Capturing subpattern count = 0
302  Options: anchored  Options: anchored
303  No first char  No first char
# Line 312  No match Line 312  No match
312  /ab(?z)cd/  /ab(?z)cd/
313  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? at offset 4
314    
315  /^abc|def/  /^abc|def/I
316  Capturing subpattern count = 0  Capturing subpattern count = 0
317  No options  No options
318  No first char  No first char
# Line 322  No need char Line 322  No need char
322      abcdef\B      abcdef\B
323   0: def   0: def
324    
325  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
326  Capturing subpattern count = 3  Capturing subpattern count = 3
327  Partial matching not supported  Partial matching not supported
328  No options  No options
# Line 338  No need char Line 338  No need char
338   2: <unset>   2: <unset>
339   3: def   3: def
340    
341  /abc/P  /abc/IP
342      abc      abc
343   0: abc   0: abc
344      *** Failers      *** Failers
345  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
346    
347  /^abc|def/P  /^abc|def/IP
348      abcdef      abcdef
349   0: abc   0: abc
350      abcdef\B      abcdef\B
351   0: def   0: def
352    
353  /.*((abc)$|(def))/P  /.*((abc)$|(def))/IP
354      defabc      defabc
355   0: defabc   0: defabc
356   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 360  No match: POSIX code 17: match failed
360   1: def   1: def
361   3: def   3: def
362    
363  /the quick brown fox/P  /the quick brown fox/IP
364      the quick brown fox      the quick brown fox
365   0: the quick brown fox   0: the quick brown fox
366      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 368  No match: POSIX code 17: match failed
368      The Quick Brown Fox      The Quick Brown Fox
369  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
370    
371  /the quick brown fox/Pi  /the quick brown fox/IPi
372      the quick brown fox      the quick brown fox
373   0: the quick brown fox   0: the quick brown fox
374      The Quick Brown Fox      The Quick Brown Fox
375   0: The Quick Brown Fox   0: The Quick Brown Fox
376    
377  /abc.def/P  /abc.def/IP
378      *** Failers      *** Failers
379  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
380      abc\ndef      abc\ndef
381  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
382    
383  /abc$/P  /abc$/IP
384      abc      abc
385   0: abc   0: abc
386      abc\n      abc\n
387   0: abc   0: abc
388    
389  /(abc)\2/P  /(abc)\2/IP
390  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
391    
392  /(abc\1)/P  /(abc\1)/IP
393      abc      abc
394  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
395    
# Line 399  Failed: unmatched parentheses at offset Line 399  Failed: unmatched parentheses at offset
399  /a[]b/  /a[]b/
400  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
401    
402  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
403  Capturing subpattern count = 0  Capturing subpattern count = 0
404  Partial matching not supported  Partial matching not supported
405  No options  No options
# Line 408  No need char Line 408  No need char
408      co-processors, and for      co-processors, and for
409   0: -pr   0: -pr
410    
411  /<.*>/  /<.*>/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
413  Partial matching not supported  Partial matching not supported
414  No options  No options
# Line 417  Need char = '>' Line 417  Need char = '>'
417      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
418   0: <def>ghi<klm>   0: <def>ghi<klm>
419    
420  /<.*?>/  /<.*?>/I
421  Capturing subpattern count = 0  Capturing subpattern count = 0
422  Partial matching not supported  Partial matching not supported
423  No options  No options
# Line 426  Need char = '>' Line 426  Need char = '>'
426      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
427   0: <def>   0: <def>
428    
429  /<.*>/U  /<.*>/IU
430  Capturing subpattern count = 0  Capturing subpattern count = 0
431  Partial matching not supported  Partial matching not supported
432  Options: ungreedy  Options: ungreedy
# Line 435  Need char = '>' Line 435  Need char = '>'
435      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
436   0: <def>   0: <def>
437    
438  /(?U)<.*>/  /(?U)<.*>/I
439  Capturing subpattern count = 0  Capturing subpattern count = 0
440  Partial matching not supported  Partial matching not supported
441  Options: ungreedy  Options: ungreedy
# Line 444  Need char = '>' Line 444  Need char = '>'
444      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
445   0: <def>   0: <def>
446    
447  /<.*?>/U  /<.*?>/IU
448  Capturing subpattern count = 0  Capturing subpattern count = 0
449  Partial matching not supported  Partial matching not supported
450  Options: ungreedy  Options: ungreedy
# Line 453  Need char = '>' Line 453  Need char = '>'
453      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
454   0: <def>ghi<klm>   0: <def>ghi<klm>
455    
456  /={3,}/U  /={3,}/IU
457  Capturing subpattern count = 0  Capturing subpattern count = 0
458  Partial matching not supported  Partial matching not supported
459  Options: ungreedy  Options: ungreedy
# Line 462  Need char = '=' Line 462  Need char = '='
462      abc========def      abc========def
463   0: ===   0: ===
464    
465  /(?U)={3,}?/  /(?U)={3,}?/I
466  Capturing subpattern count = 0  Capturing subpattern count = 0
467  Partial matching not supported  Partial matching not supported
468  Options: ungreedy  Options: ungreedy
# Line 471  Need char = '=' Line 471  Need char = '='
471      abc========def      abc========def
472   0: ========   0: ========
473    
474  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
475  Capturing subpattern count = 0  Capturing subpattern count = 0
476  No options  No options
477  First char = 'f'  First char = 'f'
# Line 496  Failed: lookbehind assertion is not fixe Line 496  Failed: lookbehind assertion is not fixe
496  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
497  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
498    
499  /(?i)abc/  /(?i)abc/I
500  Capturing subpattern count = 0  Capturing subpattern count = 0
501  Options: caseless  Options: caseless
502  First char = 'a' (caseless)  First char = 'a' (caseless)
503  Need char = 'c' (caseless)  Need char = 'c' (caseless)
504    
505  /(a|(?m)a)/  /(a|(?m)a)/I
506  Capturing subpattern count = 1  Capturing subpattern count = 1
507  No options  No options
508  First char = 'a'  First char = 'a'
509  No need char  No need char
510    
511  /(?i)^1234/  /(?i)^1234/I
512  Capturing subpattern count = 0  Capturing subpattern count = 0
513  Options: anchored caseless  Options: anchored caseless
514  No first char  No first char
515  No need char  No need char
516    
517  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
518  Capturing subpattern count = 1  Capturing subpattern count = 1
519  Options: anchored  Options: anchored
520  No first char  No first char
521  No need char  No need char
522    
523  /(?s).*/  /(?s).*/I
524  Capturing subpattern count = 0  Capturing subpattern count = 0
525  Partial matching not supported  Partial matching not supported
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
529    
530  /[abcd]/S  /[abcd]/IS
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535  Starting byte set: a b c d  Starting byte set: a b c d
536    
537  /(?i)[abcd]/S  /(?i)[abcd]/IS
538  Capturing subpattern count = 0  Capturing subpattern count = 0
539  Options: caseless  Options: caseless
540  No first char  No first char
541  No need char  No need char
542  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
543    
544  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
545  Capturing subpattern count = 1  Capturing subpattern count = 1
546  Options: multiline  Options: multiline
547  No first char  No first char
548  No need char  No need char
549  Starting byte set: b c x y  Starting byte set: b c x y
550    
551  /(^a|^b)/m  /(^a|^b)/Im
552  Capturing subpattern count = 1  Capturing subpattern count = 1
553  Options: multiline  Options: multiline
554  First char at start or follows newline  First char at start or follows newline
555  No need char  No need char
556    
557  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
558  Capturing subpattern count = 1  Capturing subpattern count = 1
559  Options: caseless multiline  Options: caseless multiline
560  First char at start or follows newline  First char at start or follows newline
# Line 567  Failed: conditional group contains more Line 567  Failed: conditional group contains more
567  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
568    
569  /(?(1a)/  /(?(1a)/
570    Failed: missing ) at offset 6
571    
572    /(?(1a))/
573  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
574    
575  /(?(?i))/  /(?(?i))/
# Line 576  Failed: assertion expected after (?( at Line 579  Failed: assertion expected after (?( at
579  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
580    
581  /(?(?<ab))/  /(?(?<ab))/
582  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
583    
584  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  Max back reference = 1  Max back reference = 1
587  Partial matching not supported  Partial matching not supported
# Line 586  No options Line 589  No options
589  First char = 'b'  First char = 'b'
590  Need char = 'h'  Need char = 'h'
591    
592  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
593  Capturing subpattern count = 1  Capturing subpattern count = 1
594  Max back reference = 1  Max back reference = 1
595  Partial matching not supported  Partial matching not supported
# Line 594  No options Line 597  No options
597  First char = 'b' (caseless)  First char = 'b' (caseless)
598  Need char = 'h' (caseless)  Need char = 'h' (caseless)
599    
600  /((?i)b)/DS  /((?i)b)/IDS
601  ------------------------------------------------------------------  ------------------------------------------------------------------
602    0  15 Bra 0    0  17 Bra 0
603    3   7 Bra 1    3   9 Bra 1
604    6  01 Opt    8  01 Opt
605    8  NC b   10  NC b
606   10   7 Ket   12   9 Ket
607   13  00 Opt   15  00 Opt
608   15  15 Ket   17  17 Ket
609   18     End   20     End
610  ------------------------------------------------------------------  ------------------------------------------------------------------
611  Capturing subpattern count = 1  Capturing subpattern count = 1
612  No options  No options
# Line 611  First char = 'b' (caseless) Line 614  First char = 'b' (caseless)
614  No need char  No need char
615  Study returned NULL  Study returned NULL
616    
617  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619  Partial matching not supported  Partial matching not supported
620  No options  No options
# Line 619  No first char Line 622  No first char
622  No need char  No need char
623  Starting byte set: C a b c d  Starting byte set: C a b c d
624    
625  /a$/  /a$/I
626  Capturing subpattern count = 0  Capturing subpattern count = 0
627  No options  No options
628  First char = 'a'  First char = 'a'
# Line 635  No match Line 638  No match
638      \Za\n      \Za\n
639  No match  No match
640    
641  /a$/m  /a$/Im
642  Capturing subpattern count = 0  Capturing subpattern count = 0
643  Options: multiline  Options: multiline
644  First char = 'a'  First char = 'a'
# Line 651  No match Line 654  No match
654      \Za      \Za
655  No match  No match
656    
657  /\Aabc/m  /\Aabc/Im
658  Capturing subpattern count = 0  Capturing subpattern count = 0
659  Options: anchored multiline  Options: anchored multiline
660  No first char  No first char
661  No need char  No need char
662    
663  /^abc/m  /^abc/Im
664  Capturing subpattern count = 0  Capturing subpattern count = 0
665  Options: multiline  Options: multiline
666  First char at start or follows newline  First char at start or follows newline
667  Need char = 'c'  Need char = 'c'
668    
669  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
670  Capturing subpattern count = 5  Capturing subpattern count = 5
671  Partial matching not supported  Partial matching not supported
672  Options: anchored  Options: anchored
# Line 677  No need char Line 680  No need char
680   4: bbbbccccc   4: bbbbccccc
681   5: def   5: def
682    
683  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
684  Capturing subpattern count = 0  Capturing subpattern count = 0
685  No options  No options
686  No first char  No first char
687  No need char  No need char
688  Starting byte set: a b  Starting byte set: a b
689    
690  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
691  Capturing subpattern count = 1  Capturing subpattern count = 1
692  No options  No options
693  No first char  No first char
694  Need char = 'a'  Need char = 'a'
695  Starting byte set: a o  Starting byte set: a o
696    
697  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
698  Capturing subpattern count = 0  Capturing subpattern count = 0
699  No options  No options
700  No first char  No first char
701  No need char  No need char
702  Starting byte set: a b  Starting byte set: a b
703    
704  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706  Options: multiline  Options: multiline
707  No first char  No first char
# Line 714  No match Line 717  No match
717      abc\nbarton      abc\nbarton
718  No match  No match
719    
720  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
721  Capturing subpattern count = 0  Capturing subpattern count = 0
722  Options: multiline  Options: multiline
723  First char at start or follows newline  First char at start or follows newline
# Line 730  No match Line 733  No match
733      abc\nbarton      abc\nbarton
734  No match  No match
735    
736  /(?>^abc)/m  /(?>^abc)/Im
737  Capturing subpattern count = 0  Capturing subpattern count = 0
738  Options: multiline  Options: multiline
739  First char at start or follows newline  First char at start or follows newline
# Line 754  Failed: lookbehind assertion is not fixe Line 757  Failed: lookbehind assertion is not fixe
757  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
758    
759  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
760    
761  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
762  Capturing subpattern count = 0  Capturing subpattern count = 0
763  No options  No options
764  First char = '-'  First char = '-'
# Line 775  No match Line 774  No match
774      horse-and-cart      horse-and-cart
775  No match  No match
776    
777  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
778  Capturing subpattern count = 0  Capturing subpattern count = 0
779  No options  No options
780  No first char  No first char
781  No need char  No need char
782    
783  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
784  Capturing subpattern count = 2  Capturing subpattern count = 2
785  Partial matching not supported  Partial matching not supported
786  No options  No options
# Line 795  No need char Line 794  No need char
794   1: <unset>   1: <unset>
795   2: xyz   2: xyz
796    
797  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
798  Capturing subpattern count = 0  Capturing subpattern count = 0
799  No options  No options
800  First char = 'Z'  First char = 'Z'
# Line 823  No match Line 822  No match
822      bzz      bzz
823  No match  No match
824    
825  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
826  Capturing subpattern count = 1  Capturing subpattern count = 1
827  No options  No options
828  First char = 'b'  First char = 'b'
# Line 837  No match Line 836  No match
836      fooabar      fooabar
837  No match  No match
838    
839  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
840  Capturing subpattern count = 0  Capturing subpattern count = 0
841  No options  No options
842  First char = 'T'  First char = 'T'
843  Need char = 't'  Need char = 't'
844    
845  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
846  Capturing subpattern count = 1  Capturing subpattern count = 1
847  Options: anchored  Options: anchored
848  No first char  No first char
# Line 853  No match Line 852  No match
852      a      a
853  No match  No match
854    
855  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
856  Capturing subpattern count = 0  Capturing subpattern count = 0
857  No options  No options
858  First char = 'T'  First char = 'T'
859  Need char = 'g'  Need char = 'g'
860    
861  /^(a\1?){4}$/  /^(a\1?){4}$/I
862  Capturing subpattern count = 1  Capturing subpattern count = 1
863  Max back reference = 1  Max back reference = 1
864  Options: anchored  Options: anchored
# Line 869  No need char Line 868  No need char
868   0: aaaaaa   0: aaaaaa
869   1: aa   1: aa
870    
871  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
872  Capturing subpattern count = 0  Capturing subpattern count = 0
873  No options  No options
874  First char = 'T'  First char = 'T'
# Line 911  Failed: reference to non-existent subpat Line 910  Failed: reference to non-existent subpat
910  /(a)|\2/  /(a)|\2/
911  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
912    
913  /a[b-a]/i  /a[b-a]/Ii
914  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
915    
916  /a[]b/i  /a[]b/Ii
917  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
918    
919  /a[/i  /a[/Ii
920  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
921    
922  /*a/i  /*a/Ii
923  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
924    
925  /(*)b/i  /(*)b/Ii
926  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
927    
928  /abc)/i  /abc)/Ii
929  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
930    
931  /(abc/i  /(abc/Ii
932  Failed: missing ) at offset 4  Failed: missing ) at offset 4
933    
934  /a**/i  /a**/Ii
935  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
936    
937  /)(/i  /)(/Ii
938  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
939    
940  /:(?:/  /:(?:/
# Line 983  Failed: POSIX code 9: bad escape sequenc Line 982  Failed: POSIX code 9: bad escape sequenc
982  /abc/\i  /abc/\i
983  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
984    
985  /(a)bc(d)/  /(a)bc(d)/I
986  Capturing subpattern count = 2  Capturing subpattern count = 2
987  No options  No options
988  First char = 'a'  First char = 'a'
# Line 1003  Need char = 'd' Line 1002  Need char = 'd'
1002   2: d   2: d
1003  copy substring 5 failed -7  copy substring 5 failed -7
1004    
1005  /(.{20})/  /(.{20})/I
1006  Capturing subpattern count = 1  Capturing subpattern count = 1
1007  Partial matching not supported  Partial matching not supported
1008  No options  No options
# Line 1021  No need char Line 1020  No need char
1020   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1021   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1022    
1023  /(.{15})/  /(.{15})/I
1024  Capturing subpattern count = 1  Capturing subpattern count = 1
1025  Partial matching not supported  Partial matching not supported
1026  No options  No options
# Line 1036  No need char Line 1035  No need char
1035   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1036   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1037    
1038  /(.{16})/  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
1040  Partial matching not supported  Partial matching not supported
1041  No options  No options
# Line 1053  No need char Line 1052  No need char
1052   0L abcdefghijklmnop   0L abcdefghijklmnop
1053   1L abcdefghijklmnop   1L abcdefghijklmnop
1054    
1055  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1056  Capturing subpattern count = 3  Capturing subpattern count = 3
1057  Options: anchored  Options: anchored
1058  No first char  No first char
# Line 1091  get substring 4 failed -7 Line 1090  get substring 4 failed -7
1090   3: f   3: f
1091   0C adef (4)   0C adef (4)
1092    
1093  /^abc\00def/  /^abc\00def/I
1094  Capturing subpattern count = 0  Capturing subpattern count = 0
1095  Options: anchored  Options: anchored
1096  No first char  No first char
# Line 1103  No need char Line 1102  No need char
1102    
1103  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1104  )((?:[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]+
1105  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/IM
1106  Memory allocation (code space): 432  Memory allocation (code space): 448
1107  Capturing subpattern count = 8  Capturing subpattern count = 8
1108  Partial matching not supported  Partial matching not supported
1109  No options  No options
1110  First char = 'w'  First char = 'w'
1111  Need char = 'd'  Need char = 'd'
1112    
1113  /.*X/D  /.*X/ID
1114  ------------------------------------------------------------------  ------------------------------------------------------------------
1115    0   7 Bra 0    0   7 Bra 0
1116    3     Any*    3     Any*
# Line 1125  No options Line 1124  No options
1124  First char at start or follows newline  First char at start or follows newline
1125  Need char = 'X'  Need char = 'X'
1126    
1127  /.*X/Ds  /.*X/IDs
1128  ------------------------------------------------------------------  ------------------------------------------------------------------
1129    0   7 Bra 0    0   7 Bra 0
1130    3     Any*    3     Any*
# Line 1139  Options: anchored dotall Line 1138  Options: anchored dotall
1138  No first char  No first char
1139  Need char = 'X'  Need char = 'X'
1140    
1141  /(.*X|^B)/D  /(.*X|^B)/ID
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143    0  19 Bra 0    0  21 Bra 0
1144    3   7 Bra 1    3   9 Bra 1
1145    6     Any*    8     Any*
1146    8     X   10     X
1147   10   6 Alt   12   6 Alt
1148   13     ^   15     ^
1149   14     B   16     B
1150   16  13 Ket   18  15 Ket
1151   19  19 Ket   21  21 Ket
1152   22     End   24     End
1153  ------------------------------------------------------------------  ------------------------------------------------------------------
1154  Capturing subpattern count = 1  Capturing subpattern count = 1
1155  Partial matching not supported  Partial matching not supported
# Line 1158  No options Line 1157  No options
1157  First char at start or follows newline  First char at start or follows newline
1158  No need char  No need char
1159    
1160  /(.*X|^B)/Ds  /(.*X|^B)/IDs
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162    0  19 Bra 0    0  21 Bra 0
1163    3   7 Bra 1    3   9 Bra 1
1164    6     Any*    8     Any*
1165    8     X   10     X
1166   10   6 Alt   12   6 Alt
1167   13     ^   15     ^
1168   14     B   16     B
1169   16  13 Ket   18  15 Ket
1170   19  19 Ket   21  21 Ket
1171   22     End   24     End
1172  ------------------------------------------------------------------  ------------------------------------------------------------------
1173  Capturing subpattern count = 1  Capturing subpattern count = 1
1174  Partial matching not supported  Partial matching not supported
# Line 1177  Options: anchored dotall Line 1176  Options: anchored dotall
1176  No first char  No first char
1177  No need char  No need char
1178    
1179  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/ID
1180  ------------------------------------------------------------------  ------------------------------------------------------------------
1181    0  19 Bra 0    0  21 Bra 0
1182    3   7 Bra 1    3   9 Bra 1
1183    6     Any*    8     Any*
1184    8     X   10     X
1185   10   6 Alt   12   6 Alt
1186   13     ^   15     ^
1187   14     B   16     B
1188   16  13 Ket   18  15 Ket
1189   19  19 Ket   21  21 Ket
1190   22     End   24     End
1191  ------------------------------------------------------------------  ------------------------------------------------------------------
1192  Capturing subpattern count = 1  Capturing subpattern count = 1
1193  Partial matching not supported  Partial matching not supported
# Line 1196  Options: anchored dotall Line 1195  Options: anchored dotall
1195  No first char  No first char
1196  No need char  No need char
1197    
1198  /(?s:.*X|^B)/D  /(?s:.*X|^B)/ID
1199  ------------------------------------------------------------------  ------------------------------------------------------------------
1200    0  25 Bra 0    0  25 Bra 0
1201    3   9 Bra 0    3   9 Bra 0
# Line 1218  No options Line 1217  No options
1217  First char at start or follows newline  First char at start or follows newline
1218  No need char  No need char
1219    
1220  /\Biss\B/+  /\Biss\B/I+
1221  Capturing subpattern count = 0  Capturing subpattern count = 0
1222  No options  No options
1223  First char = 'i'  First char = 'i'
# Line 1227  Need char = 's' Line 1226  Need char = 's'
1226   0: iss   0: iss
1227   0+ issippi   0+ issippi
1228    
1229  /\Biss\B/+P  /\Biss\B/I+P
1230      Mississippi      Mississippi
1231   0: iss   0: iss
1232   0+ issippi   0+ issippi
1233    
1234  /iss/G+  /iss/IG+
1235  Capturing subpattern count = 0  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
# Line 1243  Need char = 's' Line 1242  Need char = 's'
1242   0: iss   0: iss
1243   0+ ippi   0+ ippi
1244    
1245  /\Biss\B/G+  /\Biss\B/IG+
1246  Capturing subpattern count = 0  Capturing subpattern count = 0
1247  No options  No options
1248  First char = 'i'  First char = 'i'
# Line 1252  Need char = 's' Line 1251  Need char = 's'
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
1253    
1254  /\Biss\B/g+  /\Biss\B/Ig+
1255  Capturing subpattern count = 0  Capturing subpattern count = 0
1256  No options  No options
1257  First char = 'i'  First char = 'i'
# Line 1267  No match Line 1266  No match
1266      Mississippi\A      Mississippi\A
1267  No match  No match
1268    
1269  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1270  Capturing subpattern count = 0  Capturing subpattern count = 0
1271  No options  No options
1272  First char = 'i'  First char = 'i'
# Line 1278  Need char = 's' Line 1277  Need char = 's'
1277   0: iss   0: iss
1278   0+ ippi   0+ ippi
1279    
1280  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1281  Capturing subpattern count = 0  Capturing subpattern count = 0
1282  No options  No options
1283  First char = 'i'  First char = 'i'
# Line 1287  Need char = 's' Line 1286  Need char = 's'
1286   0: iss   0: iss
1287   0+ issippi   0+ issippi
1288    
1289  /^iss/g+  /^iss/Ig+
1290  Capturing subpattern count = 0  Capturing subpattern count = 0
1291  Options: anchored  Options: anchored
1292  No first char  No first char
# Line 1296  No need char Line 1295  No need char
1295   0: iss   0: iss
1296   0+ issippi   0+ issippi
1297    
1298  /.*iss/g+  /.*iss/Ig+
1299  Capturing subpattern count = 0  Capturing subpattern count = 0
1300  Partial matching not supported  Partial matching not supported
1301  No options  No options
# Line 1308  Need char = 's' Line 1307  Need char = 's'
1307   0: xyziss   0: xyziss
1308   0+ pqr   0+ pqr
1309    
1310  /.i./+g  /.i./I+g
1311  Capturing subpattern count = 0  Capturing subpattern count = 0
1312  No options  No options
1313  No first char  No first char
# Line 1338  Need char = 'i' Line 1337  Need char = 'i'
1337   0: Mis   0: Mis
1338   0+ souri river   0+ souri river
1339    
1340  /^.is/+g  /^.is/I+g
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342  Options: anchored  Options: anchored
1343  No first char  No first char
# Line 1347  No need char Line 1346  No need char
1346   0: Mis   0: Mis
1347   0+ sissippi   0+ sissippi
1348    
1349  /^ab\n/g+  /^ab\n/Ig+
1350  Capturing subpattern count = 0  Capturing subpattern count = 0
1351  Options: anchored  Options: anchored
1352  No first char  No first char
# Line 1356  No need char Line 1355  No need char
1355   0: ab\x0a   0: ab\x0a
1356   0+ ab\x0acd   0+ ab\x0acd
1357    
1358  /^ab\n/mg+  /^ab\n/Img+
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360  Options: multiline  Options: multiline
1361  First char at start or follows newline  First char at start or follows newline
# Line 1367  Need char = 10 Line 1366  Need char = 10
1366   0: ab\x0a   0: ab\x0a
1367   0+ cd   0+ cd
1368    
1369  /abc/  /abc/I
1370  Capturing subpattern count = 0  Capturing subpattern count = 0
1371  No options  No options
1372  First char = 'a'  First char = 'a'
1373  Need char = 'c'  Need char = 'c'
1374    
1375  /abc|bac/  /abc|bac/I
1376  Capturing subpattern count = 0  Capturing subpattern count = 0
1377  No options  No options
1378  No first char  No first char
1379  Need char = 'c'  Need char = 'c'
1380    
1381  /(abc|bac)/  /(abc|bac)/I
1382  Capturing subpattern count = 1  Capturing subpattern count = 1
1383  No options  No options
1384  No first char  No first char
1385  Need char = 'c'  Need char = 'c'
1386    
1387  /(abc|(c|dc))/  /(abc|(c|dc))/I
1388  Capturing subpattern count = 2  Capturing subpattern count = 2
1389  No options  No options
1390  No first char  No first char
1391  Need char = 'c'  Need char = 'c'
1392    
1393  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1394  Capturing subpattern count = 2  Capturing subpattern count = 2
1395  No options  No options
1396  No first char  No first char
1397  Need char = 'c'  Need char = 'c'
1398    
1399  /a*/  /a*/I
1400  Capturing subpattern count = 0  Capturing subpattern count = 0
1401  Partial matching not supported  Partial matching not supported
1402  No options  No options
1403  No first char  No first char
1404  No need char  No need char
1405    
1406  /a+/  /a+/I
1407  Capturing subpattern count = 0  Capturing subpattern count = 0
1408  Partial matching not supported  Partial matching not supported
1409  No options  No options
1410  First char = 'a'  First char = 'a'
1411  No need char  No need char
1412    
1413  /(baa|a+)/  /(baa|a+)/I
1414  Capturing subpattern count = 1  Capturing subpattern count = 1
1415  Partial matching not supported  Partial matching not supported
1416  No options  No options
1417  No first char  No first char
1418  Need char = 'a'  Need char = 'a'
1419    
1420  /a{0,3}/  /a{0,3}/I
1421  Capturing subpattern count = 0  Capturing subpattern count = 0
1422  Partial matching not supported  Partial matching not supported
1423  No options  No options
1424  No first char  No first char
1425  No need char  No need char
1426    
1427  /baa{3,}/  /baa{3,}/I
1428  Capturing subpattern count = 0  Capturing subpattern count = 0
1429  Partial matching not supported  Partial matching not supported
1430  No options  No options
1431  First char = 'b'  First char = 'b'
1432  Need char = 'a'  Need char = 'a'
1433    
1434  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1435  Capturing subpattern count = 1  Capturing subpattern count = 1
1436  Partial matching not supported  Partial matching not supported
1437  No options  No options
1438  First char = '"'  First char = '"'
1439  Need char = '"'  Need char = '"'
1440    
1441  /(abc|ab[cd])/  /(abc|ab[cd])/I
1442  Capturing subpattern count = 1  Capturing subpattern count = 1
1443  No options  No options
1444  First char = 'a'  First char = 'a'
1445  No need char  No need char
1446    
1447  /(a|.)/  /(a|.)/I
1448  Capturing subpattern count = 1  Capturing subpattern count = 1
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /a|ba|\w/  /a|ba|\w/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    
1459  /abc(?=pqr)/  /abc(?=pqr)/I
1460  Capturing subpattern count = 0  Capturing subpattern count = 0
1461  No options  No options
1462  First char = 'a'  First char = 'a'
1463  Need char = 'r'  Need char = 'r'
1464    
1465  /...(?<=abc)/  /...(?<=abc)/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /abc(?!pqr)/  /abc(?!pqr)/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
1473  No options  No options
1474  First char = 'a'  First char = 'a'
1475  Need char = 'c'  Need char = 'c'
1476    
1477  /ab./  /ab./I
1478  Capturing subpattern count = 0  Capturing subpattern count = 0
1479  No options  No options
1480  First char = 'a'  First char = 'a'
1481  Need char = 'b'  Need char = 'b'
1482    
1483  /ab[xyz]/  /ab[xyz]/I
1484  Capturing subpattern count = 0  Capturing subpattern count = 0
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  Need char = 'b'  Need char = 'b'
1488    
1489  /abc*/  /abc*/I
1490  Capturing subpattern count = 0  Capturing subpattern count = 0
1491  Partial matching not supported  Partial matching not supported
1492  No options  No options
1493  First char = 'a'  First char = 'a'
1494  Need char = 'b'  Need char = 'b'
1495    
1496  /ab.c*/  /ab.c*/I
1497  Capturing subpattern count = 0  Capturing subpattern count = 0
1498  Partial matching not supported  Partial matching not supported
1499  No options  No options
1500  First char = 'a'  First char = 'a'
1501  Need char = 'b'  Need char = 'b'
1502    
1503  /a.c*/  /a.c*/I
1504  Capturing subpattern count = 0  Capturing subpattern count = 0
1505  Partial matching not supported  Partial matching not supported
1506  No options  No options
1507  First char = 'a'  First char = 'a'
1508  No need char  No need char
1509    
1510  /.c*/  /.c*/I
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
1512  Partial matching not supported  Partial matching not supported
1513  No options  No options
1514  No first char  No first char
1515  No need char  No need char
1516    
1517  /ac*/  /ac*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
1519  Partial matching not supported  Partial matching not supported
1520  No options  No options
1521  First char = 'a'  First char = 'a'
1522  No need char  No need char
1523    
1524  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1525  Capturing subpattern count = 1  Capturing subpattern count = 1
1526  Partial matching not supported  Partial matching not supported
1527  No options  No options
1528  No first char  No first char
1529  No need char  No need char
1530    
1531  /a.c*|aba/  /a.c*|aba/I
1532  Capturing subpattern count = 0  Capturing subpattern count = 0
1533  Partial matching not supported  Partial matching not supported
1534  No options  No options
1535  First char = 'a'  First char = 'a'
1536  No need char  No need char
1537    
1538  /.+a/  /.+a/I
1539  Capturing subpattern count = 0  Capturing subpattern count = 0
1540  Partial matching not supported  Partial matching not supported
1541  No options  No options
1542  No first char  No first char
1543  Need char = 'a'  Need char = 'a'
1544    
1545  /(?=abcda)a.*/  /(?=abcda)a.*/I
1546  Capturing subpattern count = 0  Capturing subpattern count = 0
1547  Partial matching not supported  Partial matching not supported
1548  No options  No options
1549  First char = 'a'  First char = 'a'
1550  Need char = 'a'  Need char = 'a'
1551    
1552  /(?=a)a.*/  /(?=a)a.*/I
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
1554  Partial matching not supported  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(b)*/  /a(b)*/I
1560  Capturing subpattern count = 1  Capturing subpattern count = 1
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  No need char  No need char
1564    
1565  /a\d*/  /a\d*/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 0
1567  Partial matching not supported  Partial matching not supported
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  No need char  No need char
1571    
1572  /ab\d*/  /ab\d*/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 0
1574  Partial matching not supported  Partial matching not supported
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'b'  Need char = 'b'
1578    
1579  /a(\d)*/  /a(\d)*/I
1580  Capturing subpattern count = 1  Capturing subpattern count = 1
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  No need char  No need char
1584    
1585  /abcde{0,0}/  /abcde{0,0}/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  Need char = 'd'  Need char = 'd'
1590    
1591  /ab\d+/  /ab\d+/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 0
1593  Partial matching not supported  Partial matching not supported
1594  No options  No options
1595  First char = 'a'  First char = 'a'
1596  Need char = 'b'  Need char = 'b'
1597    
1598  /a(?(1)b)/  /a(?(1)b)/I
1599  Capturing subpattern count = 0  Capturing subpattern count = 0
1600  No options  No options
1601  First char = 'a'  First char = 'a'
1602  No need char  No need char
1603    
1604  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1605  Capturing subpattern count = 0  Capturing subpattern count = 0
1606  No options  No options
1607  First char = 'a'  First char = 'a'
1608  Need char = 'g'  Need char = 'g'
1609    
1610  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1611  Capturing subpattern count = 0  Capturing subpattern count = 0
1612  No options  No options
1613  First char = 'a'  First char = 'a'
1614  No need char  No need char
1615    
1616  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1617  Capturing subpattern count = 0  Capturing subpattern count = 0
1618  No options  No options
1619  First char = 'a'  First char = 'a'
1620  Need char = 'g'  Need char = 'g'
1621    
1622  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624  No options  No options
1625  First char = 'a'  First char = 'a'
1626  Need char = 'b'  Need char = 'b'
1627    
1628  /ab\d{0}e/  /ab\d{0}e/I
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  No options  No options
1631  First char = 'a'  First char = 'a'
1632  Need char = 'e'  Need char = 'e'
1633    
1634  /a?b?/  /a?b?/I
1635  Capturing subpattern count = 0  Capturing subpattern count = 0
1636  No options  No options
1637  No first char  No first char
# Line 1650  No need char Line 1649  No need char
1649      \N      \N
1650  No match  No match
1651    
1652  /|-/  /|-/I
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
1654  No options  No options
1655  No first char  No first char
# Line 1666  No need char Line 1665  No need char
1665      \Nabc      \Nabc
1666  No match  No match
1667    
1668  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1669      aaaabbbbzzzz      aaaabbbbzzzz
1670   0: aaaabbbbzz   0: aaaabbbbzz
1671   1: bbbb   1: bbbb
# Line 1693  No match Line 1692  No match
1692   2: z   2: z
1693   3: z   3: z
1694    
1695  /^.?abcd/S  /^.?abcd/IS
1696  Capturing subpattern count = 0  Capturing subpattern count = 0
1697  Options: anchored  Options: anchored
1698  No first char  No first char
# Line 1707  Study returned NULL Line 1706  Study returned NULL
1706    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1707    )*            # Zero or more contents    )*            # Zero or more contents
1708    \)            # Closing )    \)            # Closing )
1709    /x    /Ix
1710  Capturing subpattern count = 0  Capturing subpattern count = 0
1711  Partial matching not supported  Partial matching not supported
1712  Options: extended  Options: extended
# Line 1736  No match Line 1735  No match
1735      (abcd      (abcd
1736  No match  No match
1737    
1738  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1739  Capturing subpattern count = 1  Capturing subpattern count = 1
1740  Partial matching not supported  Partial matching not supported
1741  Options: extended  Options: extended
# Line 1751  Need char = ')' Line 1750  Need char = ')'
1750   0: (x(y)z)   0: (x(y)z)
1751   1: z   1: z
1752    
1753  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1754  Capturing subpattern count = 0  Capturing subpattern count = 0
1755  Partial matching not supported  Partial matching not supported
1756  Options: extended  Options: extended
# Line 1770  No match Line 1769  No match
1769      ()      ()
1770  No match  No match
1771    
1772  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1773  Capturing subpattern count = 0  Capturing subpattern count = 0
1774  Partial matching not supported  Partial matching not supported
1775  Options: extended  Options: extended
# Line 1781  Need char = ')' Line 1780  Need char = ')'
1780      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1781   0: (fsh)   0: (fsh)
1782    
1783  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1784  Capturing subpattern count = 1  Capturing subpattern count = 1
1785  Partial matching not supported  Partial matching not supported
1786  Options: extended  Options: extended
# Line 1791  Need char = ')' Line 1790  Need char = ')'
1790   0: (ab(xy)cd)   0: (ab(xy)cd)
1791   1: cd   1: cd
1792    
1793  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1794  Capturing subpattern count = 2  Capturing subpattern count = 2
1795  Partial matching not supported  Partial matching not supported
1796  Options: extended  Options: extended
# Line 1802  Need char = ')' Line 1801  Need char = ')'
1801   1: ab(xy)cd   1: ab(xy)cd
1802   2: cd   2: cd
1803    
1804  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1805  Capturing subpattern count = 3  Capturing subpattern count = 3
1806  Partial matching not supported  Partial matching not supported
1807  Options: extended  Options: extended
# Line 1819  Need char = ')' Line 1818  Need char = ')'
1818   2: ab(xy)cd   2: ab(xy)cd
1819   3: cd   3: cd
1820    
1821  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1822  Capturing subpattern count = 3  Capturing subpattern count = 3
1823  Partial matching not supported  Partial matching not supported
1824  Options: extended  Options: extended
# Line 1836  Need char = ')' Line 1835  Need char = ')'
1835   2: 123   2: 123
1836   3: cd   3: cd
1837    
1838  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1839  Capturing subpattern count = 11  Capturing subpattern count = 11
1840  Partial matching not supported  Partial matching not supported
1841  Options: extended  Options: extended
# Line 1856  Need char = ')' Line 1855  Need char = ')'
1855  10: ab(xy)cd  10: ab(xy)cd
1856  11: cd  11: cd
1857    
1858  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1859  Capturing subpattern count = 3  Capturing subpattern count = 3
1860  Partial matching not supported  Partial matching not supported
1861  Options: extended  Options: extended
# Line 1868  Need char = ')' Line 1867  Need char = ')'
1867   2: 123   2: 123
1868   3: <unset>   3: <unset>
1869    
1870  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1871  Capturing subpattern count = 3  Capturing subpattern count = 3
1872  Partial matching not supported  Partial matching not supported
1873  Options: extended  Options: extended
# Line 2185  No options Line 2184  No options
2184  No first char  No first char
2185  No need char  No need char
2186    
2187  /[[.ch.]]/  /[[.ch.]]/I
2188  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2189    
2190  /[[=ch=]]/  /[[=ch=]]/I
2191  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2192    
2193  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2194  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2195    
2196  /[[:upper:]]/i  /[[:upper:]]/Ii
2197  Capturing subpattern count = 0  Capturing subpattern count = 0
2198  Options: caseless  Options: caseless
2199  No first char  No first char
# Line 2204  No need char Line 2203  No need char
2203      a      a
2204   0: a   0: a
2205    
2206  /[[:lower:]]/i  /[[:lower:]]/Ii
2207  Capturing subpattern count = 0  Capturing subpattern count = 0
2208  Options: caseless  Options: caseless
2209  No first char  No first char
# Line 2214  No need char Line 2213  No need char
2213      a      a
2214   0: a   0: a
2215    
2216  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2217  Capturing subpattern count = 1  Capturing subpattern count = 1
2218  Options: caseless  Options: caseless
2219  No first char  No first char
# Line 2233  No match Line 2232  No match
2232      AB      AB
2233  No match  No match
2234    
2235  /[\200-\110]/  /[\200-\110]/I
2236  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2237    
2238  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2239  Failed: invalid condition (?(0) at offset 6  Failed: invalid condition (?(0) at offset 6
2240    
2241  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2242  Capturing subpattern count = 0  Capturing subpattern count = 0
2243  No options  No options
2244  First char = 'T'  First char = 'T'
2245  Need char = 'd'  Need char = 'd'
2246    
2247  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2248  Capturing subpattern count = 271  Capturing subpattern count = 271
2249  Max back reference = 270  Max back reference = 270
2250  Partial matching not supported  Partial matching not supported
# Line 2526  No need char Line 2525  No need char
2525  270: ABC  270: ABC
2526  271: ABC  271: ABC
2527    
2528  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2529  Capturing subpattern count = 0  Capturing subpattern count = 0
2530  No options  No options
2531  First char = 'T'  First char = 'T'
2532  Need char = 't'  Need char = 't'
2533    
2534  /(main(O)?)+/  /(main(O)?)+/I
2535  Capturing subpattern count = 2  Capturing subpattern count = 2
2536  No options  No options
2537  First char = 'm'  First char = 'm'
# Line 2545  Need char = 'n' Line 2544  Need char = 'n'
2544   1: main   1: main
2545   2: O   2: O
2546    
2547  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2548  Capturing subpattern count = 1  Capturing subpattern count = 1
2549  No options  No options
2550  First char = 'T'  First char = 'T'
2551  Need char = 's'  Need char = 's'
2552    
2553  /^(a(b)?)+$/  /^(a(b)?)+$/I
2554  Capturing subpattern count = 2  Capturing subpattern count = 2
2555  Options: anchored  Options: anchored
2556  No first char  No first char
# Line 2561  No need char Line 2560  No need char
2560   1: a   1: a
2561   2: b   2: b
2562    
2563  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2564  Capturing subpattern count = 2  Capturing subpattern count = 2
2565  Options: anchored  Options: anchored
2566  No first char  No first char
# Line 2571  No need char Line 2570  No need char
2570   1: aa   1: aa
2571   2: bb   2: bb
2572    
2573  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2574  Capturing subpattern count = 2  Capturing subpattern count = 2
2575  Options: anchored  Options: anchored
2576  No first char  No first char
# Line 2581  No need char Line 2580  No need char
2580   1: aa   1: aa
2581   2: bb   2: bb
2582    
2583  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2584  Capturing subpattern count = 2  Capturing subpattern count = 2
2585  Options: anchored  Options: anchored
2586  No first char  No first char
# Line 2591  No need char Line 2590  No need char
2590   1: aa   1: aa
2591   2: bb   2: bb
2592    
2593  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2594  Capturing subpattern count = 1  Capturing subpattern count = 1
2595  Options: anchored  Options: anchored
2596  No first char  No first char
# Line 2600  No need char Line 2599  No need char
2599   0: aabbaa   0: aabbaa
2600   1: bb   1: bb
2601    
2602  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2603  Capturing subpattern count = 3  Capturing subpattern count = 3
2604  Options: anchored  Options: anchored
2605  No first char  No first char
# Line 2611  No need char Line 2610  No need char
2610   2: bb   2: bb
2611   3: b   3: b
2612    
2613  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2614  Capturing subpattern count = 2  Capturing subpattern count = 2
2615  Options: anchored  Options: anchored
2616  No first char  No first char
# Line 2621  No need char Line 2620  No need char
2620   1: bb   1: bb
2621   2: b   2: b
2622    
2623  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2624  Capturing subpattern count = 1  Capturing subpattern count = 1
2625  Options: anchored  Options: anchored
2626  No first char  No first char
# Line 2630  No need char Line 2629  No need char
2629   0: aabbaa   0: aabbaa
2630   1: bb   1: bb
2631    
2632  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2633  Capturing subpattern count = 1  Capturing subpattern count = 1
2634  Options: anchored  Options: anchored
2635  No first char  No first char
# Line 2639  No need char Line 2638  No need char
2638   0: aabbbaa   0: aabbbaa
2639   1: bbb   1: bbb
2640    
2641  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2642  Capturing subpattern count = 1  Capturing subpattern count = 1
2643  Options: anchored  Options: anchored
2644  No first char  No first char
# Line 2648  No need char Line 2647  No need char
2647   0: aabbbaa   0: aabbbaa
2648   1: bbb   1: bbb
2649    
2650  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2651  Capturing subpattern count = 1  Capturing subpattern count = 1
2652  Options: anchored  Options: anchored
2653  No first char  No first char
# Line 2657  No need char Line 2656  No need char
2656   0: aabbaa   0: aabbaa
2657   1: b   1: b
2658    
2659  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2660  Capturing subpattern count = 1  Capturing subpattern count = 1
2661  Options: anchored  Options: anchored
2662  No first char  No first char
# Line 2666  No need char Line 2665  No need char
2665   0: aabbbaa   0: aabbbaa
2666   1: bb   1: bb
2667    
2668  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2669  Capturing subpattern count = 3  Capturing subpattern count = 3
2670  Options: anchored  Options: anchored
2671  No first char  No first char
# Line 2677  No need char Line 2676  No need char
2676   2: bbb   2: bbb
2677   3: bb   3: bb
2678    
2679  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2680  Capturing subpattern count = 3  Capturing subpattern count = 3
2681  Options: anchored  Options: anchored
2682  No first char  No first char
# Line 2688  No need char Line 2687  No need char
2687   2: bbbb   2: bbbb
2688   3: bb   3: bb
2689    
2690  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2691  Capturing subpattern count = 0  Capturing subpattern count = 0
2692  No options  No options
2693  First char = '-'  First char = '-'
2694  Need char = '-'  Need char = '-'
2695    
2696  /#/xMD  /#/IxMD
2697  Memory allocation (code space): 7  Memory allocation (code space): 7
2698  ------------------------------------------------------------------  ------------------------------------------------------------------
2699    0   3 Bra 0    0   3 Bra 0
# Line 2706  Options: extended Line 2705  Options: extended
2705  No first char  No first char
2706  No need char  No need char
2707    
2708  /a#/xMD  /a#/IxMD
2709  Memory allocation (code space): 9  Memory allocation (code space): 9
2710  ------------------------------------------------------------------  ------------------------------------------------------------------
2711    0   5 Bra 0    0   5 Bra 0
# Line 2767  No match Line 2766  No match
2766    
2767  /(a(?i)b)/D  /(a(?i)b)/D
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769    0  17 Bra 0    0  19 Bra 0
2770    3   9 Bra 1    3  11 Bra 1
2771    6     a    8     a
2772    8  01 Opt   10  01 Opt
2773   10  NC b   12  NC b
2774   12   9 Ket   14  11 Ket
2775   15  00 Opt   17  00 Opt
2776   17  17 Ket   19  19 Ket
2777   20     End   22     End
2778  ------------------------------------------------------------------  ------------------------------------------------------------------
2779  Capturing subpattern count = 1  Capturing subpattern count = 1
2780  No options  No options
# Line 2792  No match Line 2791  No match
2791      AB      AB
2792  No match  No match
2793    
2794  /   (?i)abc/xD  /   (?i)abc/IxD
2795  ------------------------------------------------------------------  ------------------------------------------------------------------
2796    0   9 Bra 0    0   9 Bra 0
2797    3  NC abc    3  NC abc
# Line 2805  First char = 'a' (caseless) Line 2804  First char = 'a' (caseless)
2804  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2805    
2806  /#this is a comment  /#this is a comment
2807    (?i)abc/xD    (?i)abc/IxD
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809    0   9 Bra 0    0   9 Bra 0
2810    3  NC abc    3  NC abc
# Line 2924  Need char = 'c' Line 2923  Need char = 'c'
2923    
2924  /x*+\w/D  /x*+\w/D
2925  ------------------------------------------------------------------  ------------------------------------------------------------------
2926    0  12 Bra 0    0   6 Bra 0
2927    3   5 Once    3     x*+
2928    6     x*    5     \w
2929    8   5 Ket    6   6 Ket
2930   11     \w    9     End
  12  12 Ket  
  15     End  
2931  ------------------------------------------------------------------  ------------------------------------------------------------------
2932  Capturing subpattern count = 0  Capturing subpattern count = 0
2933  Partial matching not supported  Partial matching not supported
# Line 2944  No match Line 2941  No match
2941    
2942  /x?+/D  /x?+/D
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944    0  11 Bra 0    0   5 Bra 0
2945    3   5 Once    3     x?+
2946    6     x?    5   5 Ket
2947    8   5 Ket    8     End
  11  11 Ket  
  14     End  
2948  ------------------------------------------------------------------  ------------------------------------------------------------------
2949  Capturing subpattern count = 0  Capturing subpattern count = 0
2950  No options  No options
# Line 2958  No need char Line 2953  No need char
2953    
2954  /x++/D  /x++/D
2955  ------------------------------------------------------------------  ------------------------------------------------------------------
2956    0  11 Bra 0    0   5 Bra 0
2957    3   5 Once    3     x++
2958    6     x+    5   5 Ket
2959    8   5 Ket    8     End
  11  11 Ket  
  14     End  
2960  ------------------------------------------------------------------  ------------------------------------------------------------------
2961  Capturing subpattern count = 0  Capturing subpattern count = 0
2962  Partial matching not supported  Partial matching not supported
# Line 2976  No need char Line 2969  No need char
2969    0  15 Bra 0    0  15 Bra 0
2970    3   9 Once    3   9 Once
2971    6     x    6     x
2972    8     x{,2}    8     x{0,2}
2973   12   9 Ket   12   9 Ket
2974   15  15 Ket   15  15 Ket
2975   18     End   18     End
# Line 2989  No need char Line 2982  No need char
2982    
2983  /(x)*+/D  /(x)*+/D
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985    0  18 Bra 0    0  20 Bra 0
2986    3  12 Once    3  14 Once
2987    6     Brazero    6     Brazero
2988    7   5 Bra 1    7   7 Bra 1
2989   10     x   12     x
2990   12   5 KetRmax   14   7 KetRmax
2991   15  12 Ket   17  14 Ket
2992   18  18 Ket   20  20 Ket
2993   21     End   23     End
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995  Capturing subpattern count = 1  Capturing subpattern count = 1
2996  No options  No options
2997  No first char  No first char
2998  No need char  No need char
2999    
3000  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3001  Capturing subpattern count = 1  Capturing subpattern count = 1
3002  Partial matching not supported  Partial matching not supported
3003  Options: anchored  Options: anchored
# Line 3018  No match Line 3011  No match
3011      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3012  No match  No match
3013    
3014  /(\d++)(\w)/  /(\d++)(\w)/I
3015  Capturing subpattern count = 2  Capturing subpattern count = 2
3016  Partial matching not supported  Partial matching not supported
3017  No options  No options
# Line 3033  No match Line 3026  No match
3026      12345+      12345+
3027  No match  No match
3028    
3029  /a++b/  /a++b/I
3030  Capturing subpattern count = 0  Capturing subpattern count = 0
3031  Partial matching not supported  Partial matching not supported
3032  No options  No options
# Line 3042  Need char = 'b' Line 3035  Need char = 'b'
3035      aaab      aaab
3036   0: aaab   0: aaab
3037    
3038  /(a++b)/  /(a++b)/I
3039  Capturing subpattern count = 1  Capturing subpattern count = 1
3040  Partial matching not supported  Partial matching not supported
3041  No options  No options
# Line 3052  Need char = 'b' Line 3045  Need char = 'b'
3045   0: aaab   0: aaab
3046   1: aaab   1: aaab
3047    
3048  /(a++)b/  /(a++)b/I
3049  Capturing subpattern count = 1  Capturing subpattern count = 1
3050  Partial matching not supported  Partial matching not supported
3051  No options  No options
# Line 3062  Need char = 'b' Line 3055  Need char = 'b'
3055   0: aaab   0: aaab
3056   1: aaa   1: aaa
3057    
3058  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3059  Capturing subpattern count = 1  Capturing subpattern count = 1
3060  Partial matching not supported  Partial matching not supported
3061  No options  No options
# Line 3072  No need char Line 3065  No need char
3065   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3066   1: x   1: x
3067    
3068  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3069  Capturing subpattern count = 1  Capturing subpattern count = 1
3070  Partial matching not supported  Partial matching not supported
3071  No options  No options
# Line 3091  No match Line 3084  No match
3084    
3085  /(abc){1,3}+/D  /(abc){1,3}+/D
3086  ------------------------------------------------------------------  ------------------------------------------------------------------
3087    0  53 Bra 0    0  59 Bra 0
3088    3  47 Once    3  53 Once
3089    6   9 Bra 1    6  11 Bra 1
3090    9     abc   11     abc
3091   15   9 Ket   17  11 Ket
3092   18     Brazero   20     Brazero
3093   19  28 Bra 0   21  32 Bra 0
3094   22   9 Bra 1   24  11 Bra 1
3095   25     abc   29     abc
3096   31   9 Ket   35  11 Ket
3097   34     Brazero   38     Brazero
3098   35   9 Bra 1   39  11 Bra 1
3099   38     abc   44     abc
3100   44   9 Ket   50  11 Ket
3101   47  28 Ket   53  32 Ket
3102   50  47 Ket   56  53 Ket
3103   53  53 Ket   59  59 Ket
3104   56     End   62     End
3105  ------------------------------------------------------------------  ------------------------------------------------------------------
3106  Capturing subpattern count = 1  Capturing subpattern count = 1
3107  No options  No options
3108  First char = 'a'  First char = 'a'
3109  Need char = 'c'  Need char = 'c'
3110    
3111  /a+?+/  /a+?+/I
3112  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3113    
3114  /a{2,3}?+b/  /a{2,3}?+b/I
3115  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3116    
3117  /(?U)a+?+/  /(?U)a+?+/I
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /a{2,3}?+b/U  /a{2,3}?+b/IU
3121  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3122    
3123  /x(?U)a++b/D  /x(?U)a++b/D
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  15 Bra 0    0   9 Bra 0
3126    3     x    3     x
3127    5   5 Once    5     a++
3128    8     a+    7     b
3129   10   5 Ket    9   9 Ket
3130   13     b   12     End
  15  15 Ket  
  18     End  
3131  ------------------------------------------------------------------  ------------------------------------------------------------------
3132  Capturing subpattern count = 0  Capturing subpattern count = 0
3133  Partial matching not supported  Partial matching not supported
# Line 3148  Need char = 'b' Line 3139  Need char = 'b'
3139    
3140  /(?U)xa++b/D  /(?U)xa++b/D
3141  ------------------------------------------------------------------  ------------------------------------------------------------------
3142    0  15 Bra 0    0   9 Bra 0
3143    3     x    3     x
3144    5   5 Once    5     a++
3145    8     a+    7     b
3146   10   5 Ket    9   9 Ket
3147   13     b   12     End
  15  15 Ket  
  18     End  
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149  Capturing subpattern count = 0  Capturing subpattern count = 0
3150  Partial matching not supported  Partial matching not supported
# Line 3167  Need char = 'b' Line 3156  Need char = 'b'
3156    
3157  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
3158  ------------------------------------------------------------------  ------------------------------------------------------------------
3159    0 106 Bra 0    0 116 Bra 0
3160    3     ^    3     ^
3161    4  99 Bra 1    4 109 Bra 1
3162    7   5 Bra 2    9   7 Bra 2
3163   10     a+   14     a+
3164   12   5 Ket   16   7 Ket
3165   15  37 Bra 3   19  39 Bra 3
3166   18     [ab]+?   24     [ab]+?
3167   52  37 Ket   58  39 Ket
3168   55  37 Bra 4   61  39 Bra 4
3169   58     [bc]+   66     [bc]+
3170   92  37 Ket  100  39 Ket
3171   95   5 Bra 5  103   7 Bra 5
3172   98     \w*  108     \w*
3173  100   5 Ket  110   7 Ket
3174  103  99 Ket  113 109 Ket
3175  106 106 Ket  116 116 Ket
3176  109     End  119     End
3177  ------------------------------------------------------------------  ------------------------------------------------------------------
3178  Capturing subpattern count = 5  Capturing subpattern count = 5
3179  Partial matching not supported  Partial matching not supported
# Line 3197  No need char Line 3186  No need char
3186    0  10 Bra 0    0  10 Bra 0
3187    3     ^    3     ^
3188    4     x    4     x
3189    6     a+?    6     a++
3190    8     b    8     b
3191   10  10 Ket   10  10 Ket
3192   13     End   13     End
# Line 3210  Need char = 'b' Line 3199  Need char = 'b'
3199    
3200  /^x(?U)(a+)b/D  /^x(?U)(a+)b/D
3201  ------------------------------------------------------------------  ------------------------------------------------------------------
3202    0  16 Bra 0    0  18 Bra 0
3203    3     ^    3     ^
3204    4     x    4     x
3205    6   5 Bra 1    6   7 Bra 1
3206    9     a+?   11     a+?
3207   11   5 Ket   13   7 Ket
3208   14     b   16     b
3209   16  16 Ket   18  18 Ket
3210   19     End   21     End
3211  ------------------------------------------------------------------  ------------------------------------------------------------------
3212  Capturing subpattern count = 1  Capturing subpattern count = 1
3213  Partial matching not supported  Partial matching not supported
# Line 3226  Options: anchored Line 3215  Options: anchored
3215  No first char  No first char
3216  Need char = 'b'  Need char = 'b'
3217    
3218  /[.x.]/  /[.x.]/I
3219  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3220    
3221  /[=x=]/  /[=x=]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[:x:]/  /[:x:]/I
3225  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
3226    
3227  /\l/  /\l/I
3228  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3229    
3230  /\L/  /\L/I
3231  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3232    
3233  /\N{name}/  /\N{name}/I
3234  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3235    
3236  /\u/  /\u/I
3237  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3238    
3239  /\U/  /\U/I
3240  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3241    
3242  /[/  /[/I
3243  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3244    
3245  /[a-/  /[a-/I
3246  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3247    
3248  /[[:space:]/  /[[:space:]/I
3249  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3250    
3251  /[\s]/DM  /[\s]/IDM
3252  Memory allocation (code space): 40  Memory allocation (code space): 40
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254    0  36 Bra 0    0  36 Bra 0
# Line 3272  No options Line 3261  No options
3261  No first char  No first char
3262  No need char  No need char
3263    
3264  /[[:space:]]/DM  /[[:space:]]/IDM
3265  Memory allocation (code space): 40  Memory allocation (code space): 40
3266  ------------------------------------------------------------------  ------------------------------------------------------------------
3267    0  36 Bra 0    0  36 Bra 0
# Line 3285  No options Line 3274  No options
3274  No first char  No first char
3275  No need char  No need char
3276    
3277  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDM
3278  Memory allocation (code space): 40  Memory allocation (code space): 40
3279  ------------------------------------------------------------------  ------------------------------------------------------------------
3280    0  36 Bra 0    0  36 Bra 0
# Line 3298  No options Line 3287  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
3292  Partial matching not supported  Partial matching not supported
3293  Options: extended  Options: extended
# Line 3321  No match Line 3310  No match
3310      <abc      <abc
3311  No match  No match
3312    
3313  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM
3314  Memory allocation (code space): 826  Memory allocation (code space): 826
3315  ------------------------------------------------------------------  ------------------------------------------------------------------
3316    0 822 Bra 0    0 822 Bra 0
# Line 3335  No options Line 3324  No options
3324  First char = '8'  First char = '8'
3325  Need char = 'X'  Need char = 'X'
3326    
3327  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM
3328  Memory allocation (code space): 816  Memory allocation (code space): 816
3329  ------------------------------------------------------------------  ------------------------------------------------------------------
3330    0 812 Bra 0    0 812 Bra 0
# Line 3412  No options Line 3401  No options
3401  First char = 'a'  First char = 'a'
3402  No need char  No need char
3403    
3404  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3405  Capturing subpattern count = 0  Capturing subpattern count = 0
3406  Options: caseless  Options: caseless
3407  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3540  No options Line 3529  No options
3529  First char = 'a'  First char = 'a'
3530  Need char = 'b'  Need char = 'b'
3531    
3532  /^a/mI  /^a/Im
3533  Capturing subpattern count = 0  Capturing subpattern count = 0
3534  Options: multiline  Options: multiline
3535  First char at start or follows newline  First char at start or follows newline
# Line 3574  No first char Line 3563  No first char
3563  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3564  Starting byte set: a b  Starting byte set: a b
3565    
3566  /abc(?C)def/  /abc(?C)def/I
3567  Capturing subpattern count = 0  Capturing subpattern count = 0
3568  No options  No options
3569  First char = 'a'  First char = 'a'
# Line 3596  No match Line 3585  No match
3585    0 ^  ^        d    0 ^  ^        d
3586  No match  No match
3587    
3588  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3589  Capturing subpattern count = 0  Capturing subpattern count = 0
3590  No options  No options
3591  First char = 'a'  First char = 'a'
# Line 3607  Need char = 'f' Line 3596  Need char = 'f'
3596    1    ^    ^     f    1    ^    ^     f
3597   0: abcdef   0: abcdef
3598    
3599  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3600  Capturing subpattern count = 0  Capturing subpattern count = 0
3601  No options  No options
3602  No first char  No first char
# Line 3632  No match Line 3621  No match
3621    1      ^     \d    1      ^     \d
3622  No match  No match
3623    
3624  /(?C255)ab/  /(?C255)ab/I
3625  Capturing subpattern count = 0  Capturing subpattern count = 0
3626  No options  No options
3627  First char = 'a'  First char = 'a'
3628  Need char = 'b'  Need char = 'b'
3629    
3630  /(?C256)ab/  /(?C256)ab/I
3631  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3632    
3633  /(?Cab)xx/  /(?Cab)xx/I
3634  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3635    
3636  /(?C12vr)x/  /(?C12vr)x/I
3637  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3638    
3639  /abc(?C)def/  /abc(?C)def/I
3640  Capturing subpattern count = 0  Capturing subpattern count = 0
3641  No options  No options
3642  First char = 'a'  First char = 'a'
# Line 3659  No match Line 3648  No match
3648    0         ^  ^       d    0         ^  ^       d
3649   0: abcdef   0: abcdef
3650    
3651  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3652  Capturing subpattern count = 1  Capturing subpattern count = 1
3653  No options  No options
3654  First char = 'a'  First char = 'a'
# Line 3694  No match Line 3683  No match
3683    1    ^    ^     f    1    ^    ^     f
3684  No match  No match
3685    
3686  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3687  Capturing subpattern count = 1  Capturing subpattern count = 1
3688  No options  No options
3689  No first char  No first char
# Line 3727  No need char Line 3716  No need char
3716   0: abcabc   0: abcabc
3717   1: abc   1: abc
3718    
3719  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3720  Capturing subpattern count = 1  Capturing subpattern count = 1
3721  Partial matching not supported  Partial matching not supported
3722  No options  No options
# Line 3770  Callout 0: last capture = 1 Line 3759  Callout 0: last capture = 1
3759   0: 123456789   0: 123456789
3760   1: 789   1: 789
3761    
3762  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3763  Capturing subpattern count = 2  Capturing subpattern count = 2
3764  No options  No options
3765  First char = 'x'  First char = 'x'
# Line 3789  Callout 1: last capture = -1 Line 3778  Callout 1: last capture = -1
3778   0: xyzabc   0: xyzabc
3779   1: xyzabc   1: xyzabc
3780    
3781  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3782  Capturing subpattern count = 3  Capturing subpattern count = 3
3783  No options  No options
3784  First char = 'X'  First char = 'X'
# Line 3811  Callout 1: last capture = 1 Line 3800  Callout 1: last capture = 1
3800   1: X   1: X
3801   2: xyzabc   2: xyzabc
3802    
3803  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3804  Capturing subpattern count = 1  Capturing subpattern count = 1
3805  No options  No options
3806  First char = 'a'  First char = 'a'
# Line 3825  Callout 0: last capture = 1 Line 3814  Callout 0: last capture = 1
3814   0: abcdef   0: abcdef
3815   1: abc   1: abc
3816    
3817  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3818  Capturing subpattern count = 1  Capturing subpattern count = 1
3819  No options  No options
3820  First char = 'a'  First char = 'a'
# Line 3842  Callout 2: last capture = -1 Line 3831  Callout 2: last capture = -1
3831      ^          a      ^          a
3832   0: abcxyz   0: abcxyz
3833    
3834  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3835  Capturing subpattern count = 1  Capturing subpattern count = 1
3836  No options  No options
3837  First char = 'x'  First char = 'x'
# Line 3856  Callout 0: last capture = 1 Line 3845  Callout 0: last capture = 1
3845   0: xyz   0: xyz
3846   1: abc   1: abc
3847    
3848  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3849  Capturing subpattern count = 2  Capturing subpattern count = 2
3850  Partial matching not supported  Partial matching not supported
3851  No options  No options
# Line 3882  Callout data = 1 Line 3871  Callout data = 1
3871  Callout data = 1  Callout data = 1
3872  No match  No match
3873    
3874  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3875  Capturing subpattern count = 2  Capturing subpattern count = 2
3876  Partial matching not supported  Partial matching not supported
3877  No options  No options
# Line 3908  Callout data = 1 Line 3897  Callout data = 1
3897  Callout data = 1  Callout data = 1
3898  No match  No match
3899    
3900  /(?C)abc/  /(?C)abc/I
3901  Capturing subpattern count = 0  Capturing subpattern count = 0
3902  No options  No options
3903  First char = 'a'  First char = 'a'
3904  Need char = 'c'  Need char = 'c'
3905    
3906  /(?C)^abc/  /(?C)^abc/I
3907  Capturing subpattern count = 0  Capturing subpattern count = 0
3908  Options: anchored  Options: anchored
3909  No first char  No first char
3910  No need char  No need char
3911    
3912  /(?C)a|b/S  /(?C)a|b/IS
3913  Capturing subpattern count = 0  Capturing subpattern count = 0
3914  No options  No options
3915  No first char  No first char
3916  No need char  No need char
3917  Starting byte set: a b  Starting byte set: a b
3918    
3919  /(?R)/  /(?R)/I
3920  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3921    
3922  /(a|(?R))/  /(a|(?R))/I
3923  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3924    
3925  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3926  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3927    
3928  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3929  Capturing subpattern count = 3  Capturing subpattern count = 3
3930  No options  No options
3931  First char = 'x'  First char = 'x'
# Line 3968  No match Line 3957  No match
3957      xyab      xyab
3958  No match  No match
3959    
3960  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3961  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3962    
3963  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3964  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3965    
3966  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3967  Capturing subpattern count = 1  Capturing subpattern count = 1
3968  Options: anchored  Options: anchored
3969  No first char  No first char
# Line 3993  No match Line 3982  No match
3982      a(b(c)d      a(b(c)d
3983  No match  No match
3984    
3985  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3986  Capturing subpattern count = 1  Capturing subpattern count = 1
3987  Options: anchored  Options: anchored
3988  No first char  No first char
# Line 4010  Need char = '<' Line 3999  Need char = '<'
3999    
4000  /(a(?1)b)/D  /(a(?1)b)/D
4001  ------------------------------------------------------------------  ------------------------------------------------------------------
4002    0  22 Bra 0    0  24 Bra 0
4003    3  16 Bra 1    3  18 Bra 1
4004    6     a    8     a
4005    8   6 Once   10   6 Once
4006   11   3 Recurse   13   3 Recurse
4007   14   6 Ket   16   6 Ket
4008   17     b   19     b
4009   19  16 Ket   21  18 Ket
4010   22  22 Ket   24  24 Ket
4011   25     End   27     End
4012  ------------------------------------------------------------------  ------------------------------------------------------------------
4013  Capturing subpattern count = 1  Capturing subpattern count = 1
4014  No options  No options
# Line 4028  Need char = 'b' Line 4017  Need char = 'b'
4017    
4018  /(a(?1)+b)/D  /(a(?1)+b)/D
4019  ------------------------------------------------------------------  ------------------------------------------------------------------
4020    0  22 Bra 0    0  24 Bra 0
4021    3  16 Bra 1    3  18 Bra 1
4022    6     a    8     a
4023    8   6 Once   10   6 Once
4024   11   3 Recurse   13   3 Recurse
4025   14   6 KetRmax   16   6 KetRmax
4026   17     b   19     b
4027   19  16 Ket   21  18 Ket
4028   22  22 Ket   24  24 Ket
4029   25     End   27     End
4030  ------------------------------------------------------------------  ------------------------------------------------------------------
4031  Capturing subpattern count = 1  Capturing subpattern count = 1
4032  No options  No options
4033  First char = 'a'  First char = 'a'
4034  Need char = 'b'  Need char = 'b'
4035    
4036  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
4037  Capturing subpattern count = 4  Capturing subpattern count = 4
4038  Max back reference = 4  Max back reference = 4
4039  Partial matching not supported  Partial matching not supported
# Line 4078  No match Line 4067  No match
4067      The quick brown fox      The quick brown fox
4068  No match  No match
4069    
4070  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4071  Capturing subpattern count = 2  Capturing subpattern count = 2
4072  Partial matching not supported  Partial matching not supported
4073  Options: anchored  Options: anchored
# Line 4099  No match Line 4088  No match
4088      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4089  No match  No match
4090    
4091  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4092  Capturing subpattern count = 2  Capturing subpattern count = 2
4093  Options: anchored  Options: anchored
4094  No first char  No first char
# Line 4119  No match Line 4108  No match
4108      xxyzxyzxyzz      xxyzxyzxyzz
4109  No match  No match
4110    
4111  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4112  Capturing subpattern count = 2  Capturing subpattern count = 2
4113  Partial matching not supported  Partial matching not supported
4114  Options: extended  Options: extended
# Line 4154  No match Line 4143  No match
4143      <abc      <abc
4144  No match  No match
4145    
4146  /(?1)/  /(?1)/I
4147  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4148    
4149  /((?2)(abc)/  /((?2)(abc)/I
4150  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4151    
4152  /^(abc)def(?1)/  /^(abc)def(?1)/I
4153  Capturing subpattern count = 1  Capturing subpattern count = 1
4154  Options: anchored  Options: anchored
4155  No first char  No first char
# Line 4169  No need char Line 4158  No need char
4158   0: abcdefabc   0: abcdefabc
4159   1: abc   1: abc
4160    
4161  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4162  Capturing subpattern count = 1  Capturing subpattern count = 1
4163  Options: anchored  Options: anchored
4164  No first char  No first char
# Line 4184  No need char Line 4173  No need char
4173   0: a=bc   0: a=bc
4174   1: a   1: a
4175    
4176  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4177  Capturing subpattern count = 2  Capturing subpattern count = 2
4178  Options: anchored  Options: anchored
4179  No first char  No first char
# Line 4204  No need char Line 4193  No need char
4193    
4194  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/D
4195  ------------------------------------------------------------------  ------------------------------------------------------------------
4196    0  28 Bra 0    0  32 Bra 0
4197    3     a    3     a
4198    5   5 Bra 1    5   7 Bra 1
4199    8     b   10     b
4200   10   5 Alt   12   5 Alt
4201   13     c   15     c
4202   15  10 Ket   17  12 Ket
4203   18     d   20     d
4204   20   5 Bra 2   22   7 Bra 2
4205   23     e   27     e
4206   25   5 Ket   29   7 Ket
4207   28  28 Ket   32  32 Ket
4208   31     End   35     End
4209  ------------------------------------------------------------------  ------------------------------------------------------------------
4210  Capturing subpattern count = 2  Capturing subpattern count = 2
4211  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4236  Need char = 'e' Line 4225  Need char = 'e'
4225    
4226  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
4227  ------------------------------------------------------------------  ------------------------------------------------------------------
4228    0  35 Bra 0    0  41 Bra 0
4229    3  21 Bra 0    3  25 Bra 0
4230    6     a    6     a
4231    8  13 Bra 1    8  17 Bra 1
4232   11     c   13     c
4233   13   5 Bra 2   15   7 Bra 2
4234   16     d   20     d
4235   18   5 Ket   22   7 Ket
4236   21  13 Ket   25  17 Ket
4237   24  21 Ket   28  25 Ket
4238   27   5 Bra 3   31   7 Bra 3
4239   30     a   36     a
4240   32   5 Ket   38   7 Ket
4241   35  35 Ket   41  41 Ket
4242   38     End   44     End
4243  ------------------------------------------------------------------  ------------------------------------------------------------------
4244  Capturing subpattern count = 3  Capturing subpattern count = 3
4245  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4263  Need char = 'a' Line 4252  Need char = 'a'
4252    
4253  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/D
4254  ------------------------------------------------------------------  ------------------------------------------------------------------
4255    0  34 Bra 0    0  36 Bra 0
4256    3   5 Bra 1    3   7 Bra 1
4257    6     a    8     a
4258    8   5 Ket   10   7 Ket
  11     Any  
  12     Any  
4259   13     Any   13     Any
4260   14     \1   14     Any
4261   17     bbb   15     Any
4262   23   6 Once   16     \1
4263   26   3 Recurse   19     bbb
4264   29   6 Ket   25   6 Once
4265   32     d   28   3 Recurse
4266   34  34 Ket   31   6 Ket
4267   37     End   34     d
4268     36  36 Ket
4269     39     End
4270  ------------------------------------------------------------------  ------------------------------------------------------------------
4271  Capturing subpattern count = 1  Capturing subpattern count = 1
4272  Max back reference = 1  Max back reference = 1
# Line 4287  No options Line 4276  No options
4276  First char = 'a'  First char = 'a'
4277  Need char = 'd'  Need char = 'd'
4278    
4279  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4280  Capturing subpattern count = 4  Capturing subpattern count = 4
4281  Max back reference = 4  Max back reference = 4
4282  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4326  No match Line 4315  No match
4315      The quick brown fox      The quick brown fox
4316  No match  No match
4317    
4318  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4319  Capturing subpattern count = 1  Capturing subpattern count = 1
4320  Max back reference = 1  Max back reference = 1
4321  No options  No options
# Line 4339  No need char Line 4328  No need char
4328   0: bba   0: bba
4329   1: b   1: b
4330    
4331  /(.*)a/sI  /(.*)a/Is
4332  Capturing subpattern count = 1  Capturing subpattern count = 1
4333  Partial matching not supported  Partial matching not supported
4334  Options: anchored dotall  Options: anchored dotall
4335  No first char  No first char
4336  Need char = 'a'  Need char = 'a'
4337    
4338  /(.*)a\1/sI  /(.*)a\1/Is
4339  Capturing subpattern count = 1  Capturing subpattern count = 1
4340  Max back reference = 1  Max back reference = 1
4341  Partial matching not supported  Partial matching not supported
# Line 4354  Options: dotall Line 4343  Options: dotall
4343  No first char  No first char
4344  Need char = 'a'  Need char = 'a'
4345    
4346  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4347  Capturing subpattern count = 2  Capturing subpattern count = 2
4348  Max back reference = 2  Max back reference = 2
4349  Partial matching not supported  Partial matching not supported
# Line 4362  Options: anchored dotall Line 4351  Options: anchored dotall
4351  No first char  No first char
4352  Need char = 'b'  Need char = 'b'
4353    
4354  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4355  Capturing subpattern count = 3  Capturing subpattern count = 3
4356  Partial matching not supported  Partial matching not supported
4357  Options: anchored dotall  Options: anchored dotall
4358  No first char  No first char
4359  Need char = 'z'  Need char = 'z'
4360    
4361  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4362  Capturing subpattern count = 3  Capturing subpattern count = 3
4363  Max back reference = 1  Max back reference = 1
4364  Partial matching not supported  Partial matching not supported
# Line 4377  Options: dotall Line 4366  Options: dotall
4366  No first char  No first char
4367  Need char = 'z'  Need char = 'z'
4368    
4369  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4370  Capturing subpattern count = 3  Capturing subpattern count = 3
4371  Max back reference = 2  Max back reference = 2
4372  Partial matching not supported  Partial matching not supported
# Line 4385  Options: dotall Line 4374  Options: dotall
4374  No first char  No first char
4375  Need char = 'z'  Need char = 'z'
4376    
4377  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4378  Capturing subpattern count = 3  Capturing subpattern count = 3
4379  Max back reference = 3  Max back reference = 3
4380  Partial matching not supported  Partial matching not supported
# Line 4393  Options: dotall Line 4382  Options: dotall
4382  No first char  No first char
4383  Need char = 'z'  Need char = 'z'
4384    
4385  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4386  Capturing subpattern count = 3  Capturing subpattern count = 3
4387  Max back reference = 3  Max back reference = 3
4388  Partial matching not supported  Partial matching not supported
# Line 4401  Options: anchored dotall Line 4390  Options: anchored dotall
4390  No first char  No first char
4391  Need char = 'z'  Need char = 'z'
4392    
4393  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4394  Capturing subpattern count = 31  Capturing subpattern count = 31
4395  Partial matching not supported  Partial matching not supported
4396  Options: anchored dotall  Options: anchored dotall
4397  No first char  No first char
4398  No need char  No need char
4399    
4400  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4401  Capturing subpattern count = 31  Capturing subpattern count = 31
4402  Max back reference = 31  Max back reference = 31
4403  Partial matching not supported  Partial matching not supported
# Line 4416  Options: dotall Line 4405  Options: dotall
4405  No first char  No first char
4406  No need char  No need char
4407    
4408  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4409  Capturing subpattern count = 32  Capturing subpattern count = 32
4410  Max back reference = 32  Max back reference = 32
4411  Partial matching not supported  Partial matching not supported
# Line 4424  Options: dotall Line 4413  Options: dotall
4413  No first char  No first char
4414  No need char  No need char
4415    
4416  /(a)(bc)/ND  /(a)(bc)/IND
4417  ------------------------------------------------------------------  ------------------------------------------------------------------
4418    0  21 Bra 0    0  21 Bra 0
4419    3   5 Bra 0    3   5 Bra 0
# Line 4443  Need char = 'c' Line 4432  Need char = 'c'
4432    abc    abc
4433   0: abc   0: abc
4434    
4435  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/IND
4436  ------------------------------------------------------------------  ------------------------------------------------------------------
4437    0  21 Bra 0    0  23 Bra 0
4438    3   5 Bra 1    3   7 Bra 1
4439    6     a    8     a
4440    8   5 Ket   10   7 Ket
4441   11   7 Bra 0   13   7 Bra 0
4442   14     bc   16     bc
4443   18   7 Ket   20   7 Ket
4444   21  21 Ket   23  23 Ket
4445   24     End   26     End
4446  ------------------------------------------------------------------  ------------------------------------------------------------------
4447  Capturing subpattern count = 1  Capturing subpattern count = 1
4448  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4465  Need char = 'c' Line 4454  Need char = 'c'
4454   0: abc   0: abc
4455   1: a   1: a
4456    
4457  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/IND
4458  ------------------------------------------------------------------  ------------------------------------------------------------------
4459    0  21 Bra 0    0  23 Bra 0
4460    3   5 Bra 0    3   5 Bra 0
4461    6     a    6     a
4462    8   5 Ket    8   5 Ket
4463   11   7 Bra 1   11   9 Bra 1
4464   14     bc   16     bc
4465   18   7 Ket   20   9 Ket
4466   21  21 Ket   23  23 Ket
4467   24     End   26     End
4468  ------------------------------------------------------------------  ------------------------------------------------------------------
4469  Capturing subpattern count = 1  Capturing subpattern count = 1
4470  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4484  Options: no_auto_capture Line 4473  Options: no_auto_capture
4473  First char = 'a'  First char = 'a'
4474  Need char = 'c'  Need char = 'c'
4475    
4476  /(a+)*zz/  /(a+)*zz/I
4477  Capturing subpattern count = 1  Capturing subpattern count = 1
4478  Partial matching not supported  Partial matching not supported
4479  No options  No options
# Line 4500  Minimum match() limit = 32768 Line 4489  Minimum match() limit = 32768
4489  Minimum match() recursion limit = 42  Minimum match() recursion limit = 42
4490  No match  No match
4491    
4492  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4493  Capturing subpattern count = 1  Capturing subpattern count = 1
4494  No options  No options
4495  First char = 'a'  First char = 'a'
# Line 4527  Callout data = 1 Line 4516  Callout data = 1
4516  Callout data = -1  Callout data = -1
4517  No match  No match
4518    
4519  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4520  Capturing subpattern count = 2  Capturing subpattern count = 2
4521  Named capturing subpatterns:  Named capturing subpatterns:
4522    one   1    one   1
# Line 4560  copy substring three failed -7 Line 4549  copy substring three failed -7
4549    
4550  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/D
4551  ------------------------------------------------------------------  ------------------------------------------------------------------
4552    0  15 Bra 0    0  19 Bra 0
4553    3   3 Bra 1    3   5 Bra 1
4554    6   3 Ket    8   5 Ket
4555    9   3 Bra 2   11   5 Bra 2
4556   12   3 Ket   16   5 Ket
4557   15  15 Ket   19  19 Ket
4558   18     End   22     End
4559  ------------------------------------------------------------------  ------------------------------------------------------------------
4560  Capturing subpattern count = 2  Capturing subpattern count = 2
4561  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4578  No need char Line 4567  No need char
4567    
4568  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/D
4569  ------------------------------------------------------------------  ------------------------------------------------------------------
4570    0  15 Bra 0    0  19 Bra 0
4571    3   3 Bra 1    3   5 Bra 1
4572    6   3 Ket    8   5 Ket
4573    9   3 Bra 2   11   5 Bra 2
4574   12   3 Ket   16   5 Ket
4575   15  15 Ket   19  19 Ket
4576   18     End   22     End
4577  ------------------------------------------------------------------  ------------------------------------------------------------------
4578  Capturing subpattern count = 2  Capturing subpattern count = 2
4579  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4594  No options Line 4583  No options
4583  No first char  No first char
4584  No need char  No need char
4585    
4586  /(?P<Z>zz)(?P<A>aa)/  /(?P<Z>zz)(?P<A>aa)/I
4587  Capturing subpattern count = 2  Capturing subpattern count = 2
4588  Named capturing subpatterns:  Named capturing subpatterns:
4589    A   2    A   2
# Line 4613  Need char = 'a' Line 4602  Need char = 'a'
4602   2: aa   2: aa
4603    C aa (2) A    C aa (2) A
4604    
4605  /(?P<x>eks)(?P<x>eccs)/  /(?P<x>eks)(?P<x>eccs)/I
4606  Failed: two named subpatterns have the same name at offset 16  Failed: two named subpatterns have the same name at offset 15
4607    
4608  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4609  Failed: two named subpatterns have the same name at offset 31  Failed: two named subpatterns have the same name at offset 30
4610    
4611  "\[((?P<elem>\d+)(,(?P>elem))*)\]"  "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4612  Capturing subpattern count = 3  Capturing subpattern count = 3
4613  Named capturing subpatterns:  Named capturing subpatterns:
4614    elem   2    elem   2
# Line 4637  No match Line 4626  No match
4626      []      []
4627  No match  No match
4628    
4629  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4630  Capturing subpattern count = 3  Capturing subpattern count = 3
4631  Named capturing subpatterns:  Named capturing subpatterns:
4632    elem   2    elem   2
# Line 4655  Need char = ']' Line 4644  Need char = ']'
4644    
4645  /(a(b(?2)c))?/D  /(a(b(?2)c))?/D
4646  ------------------------------------------------------------------  ------------------------------------------------------------------
4647    0  31 Bra 0    0  35 Bra 0
4648    3     Brazero    3     Brazero
4649    4  24 Bra 1    4  28 Bra 1
4650    7     a    9     a
4651    9  16 Bra 2   11  18 Bra 2
4652   12     b   16     b
4653   14   6 Once   18   6 Once
4654   17   9 Recurse   21  11 Recurse
4655   20   6 Ket   24   6 Ket
4656   23     c   27     c
4657   25  16 Ket   29  18 Ket
4658   28  24 Ket   32  28 Ket
4659   31  31 Ket   35  35 Ket
4660   34     End   38     End
4661  ------------------------------------------------------------------  ------------------------------------------------------------------
4662  Capturing subpattern count = 2  Capturing subpattern count = 2
4663  No options  No options
# Line 4677  No need char Line 4666  No need char
4666    
4667  /(a(b(?2)c))*/D  /(a(b(?2)c))*/D
4668  ------------------------------------------------------------------  ------------------------------------------------------------------
4669    0  31 Bra 0    0  35 Bra 0
4670    3     Brazero    3     Brazero
4671    4  24 Bra 1    4  28 Bra 1
4672    7     a    9     a
4673    9  16 Bra 2   11  18 Bra 2
4674   12     b   16     b
4675   14   6 Once   18   6 Once
4676   17   9 Recurse   21  11 Recurse
4677   20   6 Ket   24   6 Ket
4678   23     c   27     c
4679   25  16 Ket   29  18 Ket
4680   28  24 KetRmax   32  28 KetRmax
4681   31  31 Ket   35  35 Ket
4682   34     End   38     End
4683  ------------------------------------------------------------------  ------------------------------------------------------------------
4684  Capturing subpattern count = 2  Capturing subpattern count = 2
4685  No options  No options
# Line 4699  No need char Line 4688  No need char
4688    
4689  /(a(b(?2)c)){0,2}/D  /(a(b(?2)c)){0,2}/D
4690  ------------------------------------------------------------------  ------------------------------------------------------------------
4691    0  65 Bra 0    0  73 Bra 0
4692    3     Brazero    3     Brazero
4693    4  58 Bra 0    4  66 Bra 0
4694    7  24 Bra 1    7  28 Bra 1
4695   10     a   12     a
4696   12  16 Bra 2   14  18 Bra 2
4697   15     b   19     b
4698   17   6 Once   21   6 Once
4699   20  12 Recurse   24  14 Recurse
4700   23   6 Ket   27   6 Ket
4701   26     c   30     c
4702   28  16 Ket   32  18 Ket
4703   31  24 Ket   35  28 Ket
4704   34     Brazero   38     Brazero
4705   35  24 Bra 1   39  28 Bra 1
4706   38     a   44     a
4707   40  16 Bra 2   46  18 Bra 2
4708   43     b   51     b
4709   45   6 Once   53   6 Once
4710   48  12 Recurse   56  14 Recurse
4711   51   6 Ket   59   6 Ket
4712   54     c   62     c
4713   56  16 Ket   64  18 Ket
4714   59  24 Ket   67  28 Ket
4715   62  58 Ket   70  66 Ket
4716   65  65 Ket   73  73 Ket
4717   68     End   76     End
4718  ------------------------------------------------------------------  ------------------------------------------------------------------
4719  Capturing subpattern count = 2  Capturing subpattern count = 2
4720  No options  No options
# Line 4746  No options Line 4735  No options
4735  No first char  No first char
4736  No need char  No need char
4737    
4738  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4739  Capturing subpattern count = 3  Capturing subpattern count = 3
4740  Partial matching not supported  Partial matching not supported
4741  Options: caseless  Options: caseless
# Line 4756  Need char = 'g' (caseless) Line 4745  Need char = 'g' (caseless)
4745   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4746   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
4747    
4748  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/iS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4749  Capturing subpattern count = 3  Capturing subpattern count = 3
4750  Partial matching not supported  Partial matching not supported
4751  Options: caseless  Options: caseless
# Line 4767  Study returned NULL Line 4756  Study returned NULL
4756   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4757   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
4758    
4759  /a*.*b/SD  /a*.*b/ISD
4760  ------------------------------------------------------------------  ------------------------------------------------------------------
4761    0   9 Bra 0    0   9 Bra 0
4762    3     a*    3     a*
# Line 4783  No first char Line 4772  No first char
4772  Need char = 'b'  Need char = 'b'
4773  Study returned NULL  Study returned NULL
4774    
4775  /(a|b)*.?c/SD  /(a|b)*.?c/ISD
4776  ------------------------------------------------------------------  ------------------------------------------------------------------
4777    0  21 Bra 0    0  23 Bra 0
4778    3     Brazero    3     Brazero
4779    4   5 Bra 1    4   7 Bra 1
4780    7     a    9     a
4781    9   5 Alt   11   5 Alt
4782   12     b   14     b
4783   14  10 KetRmax   16  12 KetRmax
4784   17     Any?   19     Any?
4785   19     c   21     c
4786   21  21 Ket   23  23 Ket
4787   24     End   26     End
4788  ------------------------------------------------------------------  ------------------------------------------------------------------
4789  Capturing subpattern count = 1  Capturing subpattern count = 1
4790  No options  No options
# Line 4819  No options Line 4808  No options
4808  First char = 'a'  First char = 'a'
4809  Need char = 'f'  Need char = 'f'
4810    
4811  /abcde/CD  /abcde/ICD
4812  ------------------------------------------------------------------  ------------------------------------------------------------------
4813    0  49 Bra 0    0  49 Bra 0
4814    3     Callout 255 0 1    3     Callout 255 0 1
# Line 4858  Need char = 'e' Line 4847  Need char = 'e'
4847   +4 ^   ^      e   +4 ^   ^      e
4848  No match  No match
4849    
4850  /a*b/CD  /a*b/ICD
4851  ------------------------------------------------------------------  ------------------------------------------------------------------
4852    0  25 Bra 0    0  25 Bra 0
4853    3     Callout 255 0 2    3     Callout 255 0 2
4854    9     a*    9     a*+
4855   11     Callout 255 2 1   11     Callout 255 2 1
4856   17     b   17     b
4857   19     Callout 255 3 0   19     Callout 255 3 0
# Line 4890  Need char = 'b' Line 4879  Need char = 'b'
4879  --->aaaacb  --->aaaacb
4880   +0 ^          a*   +0 ^          a*
4881   +2 ^   ^      b   +2 ^   ^      b
  +2 ^  ^       b  
  +2 ^ ^        b  
  +2 ^^         b  
  +2 ^          b  
4882   +0  ^         a*   +0  ^         a*
4883   +2  ^  ^      b   +2  ^  ^      b
  +2  ^ ^       b  
  +2  ^^        b  
  +2  ^         b  
4884   +0   ^        a*   +0   ^        a*
4885   +2   ^ ^      b   +2   ^ ^      b
  +2   ^^       b  
  +2   ^        b  
4886   +0    ^       a*   +0    ^       a*
4887   +2    ^^      b   +2    ^^      b
  +2    ^       b  
4888   +0     ^      a*   +0     ^      a*
4889   +2     ^      b   +2     ^      b
4890   +0      ^     a*   +0      ^     a*
# Line 4913  Need char = 'b' Line 4892  Need char = 'b'
4892   +3      ^^   +3      ^^
4893   0: b   0: b
4894    
4895  /a+b/CD  /a+b/ICD
4896  ------------------------------------------------------------------  ------------------------------------------------------------------
4897    0  25 Bra 0    0  25 Bra 0
4898    3     Callout 255 0 2    3     Callout 255 0 2
4899    9     a+    9     a++
4900   11     Callout 255 2 1   11     Callout 255 2 1
4901   17     b   17     b
4902   19     Callout 255 3 0   19     Callout 255 3 0
# Line 4945  Need char = 'b' Line 4924  Need char = 'b'
4924  --->aaaacb  --->aaaacb
4925   +0 ^          a+   +0 ^          a+
4926   +2 ^   ^      b   +2 ^   ^      b
  +2 ^  ^       b  
  +2 ^ ^        b  
  +2 ^^         b  
4927   +0  ^         a+   +0  ^         a+
4928   +2  ^  ^      b   +2  ^  ^      b
  +2  ^ ^       b  
  +2  ^^        b  
4929   +0   ^        a+   +0   ^        a+
4930   +2   ^ ^      b   +2   ^ ^      b
  +2   ^^       b  
4931   +0    ^       a+   +0    ^       a+
4932   +2    ^^      b   +2    ^^      b
4933  No match  No match
4934    
4935  /(abc|def)x/CD  /(abc|def)x/ICD
4936  ------------------------------------------------------------------  ------------------------------------------------------------------
4937    0  92 Bra 0    0  94 Bra 0
4938    3     Callout 255 0 9    3     Callout 255 0 9
4939    9  33 Bra 1    9  35 Bra 1
4940   12     Callout 255 1 1   14     Callout 255 1 1
4941   18     a   20     a
4942   20     Callout 255 2 1   22     Callout 255 2 1
4943   26     b   28     b
4944   28     Callout 255 3 1   30     Callout 255 3 1
4945   34     c   36     c
4946   36     Callout 255 4 0   38     Callout 255 4 0
4947   42  33 Alt   44  33 Alt
4948   45     Callout 255 5 1   47     Callout 255 5 1
4949   51     d   53     d
4950   53     Callout 255 6 1   55     Callout 255 6 1
4951   59     e   61     e
4952   61     Callout 255 7 1   63     Callout 255 7 1
4953   67     f   69     f
4954   69     Callout 255 8 0   71     Callout 255 8 0
4955   75  66 Ket   77  68 Ket
4956   78     Callout 255 9 1   80     Callout 255 9 1
4957   84     x   86     x
4958   86     Callout 255 10 0   88     Callout 255 10 0
4959   92  92 Ket   94  94 Ket
4960   95     End   97     End
4961  ------------------------------------------------------------------  ------------------------------------------------------------------
4962  Capturing subpattern count = 1  Capturing subpattern count = 1
4963  Options:  Options:
# Line 5049  Need char = 'x' Line 5022  Need char = 'x'
5022   +5        ^     d   +5        ^     d
5023  No match  No match
5024    
5025  /(ab|cd){3,4}/C  /(ab|cd){3,4}/IC
5026  Capturing subpattern count = 1  Capturing subpattern count = 1
5027  Options:  Options:
5028  No first char  No first char
# Line 5113  No need char Line 5086  No need char
5086   0: abcdcdcd   0: abcdcdcd
5087   1: cd   1: cd
5088    
5089  /([ab]{,4}c|xy)/CD  /([ab]{,4}c|xy)/ICD
5090  ------------------------------------------------------------------  ------------------------------------------------------------------
5091    0 131 Bra 0    0 133 Bra 0
5092    3     Callout 255 0 14    3     Callout 255 0 14
5093    9  88 Bra 1    9  90 Bra 1
5094   12     Callout 255 1 4   14     Callout 255 1 4
5095   18     [ab]   20     [ab]
5096   51     Callout 255 5 1   53     Callout 255 5 1
5097   57     {   59     {
5098   59     Callout 255 6 1   61     Callout 255 6 1
5099   65     ,   67     ,
5100   67     Callout 255 7 1   69     Callout 255 7 1
5101   73     4   75     4
5102   75     Callout 255 8 1   77     Callout 255 8 1
5103   81     }   83     }
5104   83     Callout 255 9 1   85     Callout 255 9 1
5105   89     c   91     c
5106   91     Callout 255 10 0   93     Callout 255 10 0
5107   97  25 Alt   99  25 Alt
5108  100     Callout 255 11 1  102     Callout 255 11 1
5109  106     x  108     x
5110  108     Callout 255 12 1  110     Callout 255 12 1
5111  114     y  116     y
5112  116     Callout 255 13 0  118     Callout 255 13 0
5113  122 113 Ket  124 115 Ket
5114  125     Callout 255 14 0  127     Callout 255 14 0
5115  131 131 Ket  133 133 Ket
5116  134     End  136     End
5117  ------------------------------------------------------------------  ------------------------------------------------------------------
5118  Capturing subpattern count = 1  Capturing subpattern count = 1
5119  Options:  Options:
# Line 5288  No need char Line 5261  No need char
5261  +11                                             ^    x  +11                                             ^    x
5262  No match  No match
5263    
5264  /([ab]{1,4}c|xy){4,5}?123/CD  /([ab]{1,4}c|xy){4,5}?123/ICD
5265  ------------------------------------------------------------------  ------------------------------------------------------------------
5266    0 485 Bra 0    0 495 Bra 0
5267    3     Callout 255 0 21    3     Callout 255 0 21
5268    9  61 Bra 1    9  63 Bra 1
5269   12     Callout 255 1 9   14     Callout 255 1 9
5270   18     [ab]{1,4}   20     [ab]{1,4}
5271   56     Callout 255 10 1   58     Callout 255 10 1
5272   62     c   64     c
5273   64     Callout 255 11 0   66     Callout 255 11 0
5274   70  25 Alt   72  25 Alt
5275   73     Callout 255 12 1   75     Callout 255 12 1
5276   79     x   81     x
5277   81     Callout 255 13 1   83     Callout 255 13 1
5278   87     y   89     y
5279   89     Callout 255 14 0   91     Callout 255 14 0
5280   95  86 Ket   97  88 Ket
5281   98  61 Bra 1  100  63 Bra 1
5282  101     Callout 255 1 9  105     Callout 255 1 9
5283  107     [ab]{1,4}  111     [ab]{1,4}
5284  145     Callout 255 10 1  149     Callout 255 10 1
5285  151     c  155     c
5286  153     Callout 255 11 0  157     Callout 255 11 0
5287  159  25 Alt  163  25 Alt
5288  162     Callout 255 12 1  166     Callout 255 12 1
5289  168     x  172     x
5290  170     Callout 255 13 1  174     Callout 255 13 1
5291  176     y  180     y
5292  178     Callout 255 14 0  182     Callout 255 14 0
5293  184  86 Ket  188  88 Ket
5294  187  61 Bra 1  191  63 Bra 1
5295  190     Callout 255 1 9  196     Callout 255 1 9
5296  196     [ab]{1,4}  202     [ab]{1,4}
5297  234     Callout 255 10 1  240     Callout 255 10 1
5298  240     c  246     c
5299  242     Callout 255 11 0  248     Callout 255 11 0
5300  248  25 Alt  254  25 Alt
5301  251     Callout 255 12 1  257     Callout 255 12 1
5302  257     x  263     x
5303  259     Callout 255 13 1  265     Callout 255 13 1
5304  265     y  271     y
5305  267     Callout 255 14 0  273     Callout 255 14 0
5306  273  86 Ket  279  88 Ket
5307  276  61 Bra 1  282  63 Bra 1
5308  279     Callout 255 1 9  287     Callout 255 1 9
5309  285     [ab]{1,4}  293     [ab]{1,4}
5310  323     Callout 255 10 1  331     Callout 255 10 1
5311  329     c  337     c
5312  331     Callout 255 11 0  339     Callout 255 11 0
5313  337  25 Alt  345  25 Alt
5314  340     Callout 255 12 1  348     Callout 255 12 1
5315  346     x  354     x
5316  348     Callout 255 13 1  356     Callout 255 13 1
5317  354     y  362     y
5318  356     Callout 255 14 0  364     Callout 255 14 0
5319  362  86 Ket  370  88 Ket
5320  365     Braminzero  373     Braminzero
5321  366  61 Bra 1  374  63 Bra 1
5322  369     Callout 255 1 9  379     Callout 255 1 9
5323  375     [ab]{1,4}  385     [ab]{1,4}
5324  413     Callout 255 10 1  423     Callout 255 10 1
5325  419     c  429     c
5326  421     Callout 255 11 0  431     Callout 255 11 0
5327  427  25 Alt  437  25 Alt
5328  430     Callout 255 12 1  440     Callout 255 12 1
5329  436     x  446     x
5330  438     Callout 255 13 1  448     Callout 255 13 1
5331  444     y  454     y
5332  446     Callout 255 14 0  456     Callout 255 14 0
5333  452  86 Ket  462  88 Ket
5334  455     Callout 255 21 1  465     Callout 255 21 1
5335  461     1  471     1
5336  463     Callout 255 22 1  473     Callout 255 22 1
5337  469     2  479     2
5338  471     Callout 255 23 1  481     Callout 255 23 1
5339  477     3  487     3
5340  479     Callout 255 24 0  489     Callout 255 24 0
5341  485 485 Ket  495 495 Ket
5342  488     End  498     End
5343  ------------------------------------------------------------------  ------------------------------------------------------------------
5344  Capturing subpattern count = 1  Capturing subpattern count = 1
5345  Partial matching not supported  Partial matching not supported
# Line 5426  No need char Line 5399  No need char
5399    Xbcd12345    Xbcd12345
5400   0: bcd12345   0: bcd12345
5401    
5402  /abcde/  /abcde/I
5403  Capturing subpattern count = 0  Capturing subpattern count = 0
5404  No options  No options
5405  First char = 'a'  First char = 'a'
# Line 5446  No match Line 5419  No match
5419      the quick brown abxyz fox\P      the quick brown abxyz fox\P
5420  No match  No match
5421    
5422  "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"  "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5423  Capturing subpattern count = 3  Capturing subpattern count = 3
5424  Options: anchored  Options: anchored
5425  No first char  No first char
# Line 5529  No options Line 5502  No options
5502  No first char  No first char
5503  Need char = 'E'  Need char = 'E'
5504    
5505  /[abc]?123/  /[abc]?123/I
5506  Capturing subpattern count = 0  Capturing subpattern count = 0
5507  No options  No options
5508  No first char  No first char
# Line 5547  Partial match Line 5520  Partial match
5520      c123\P      c123\P
5521   0: c123   0: c123
5522    
5523  /^(?:\d){3,5}X/  /^(?:\d){3,5}X/I
5524  Capturing subpattern count = 0  Capturing subpattern count = 0
5525  Options: anchored  Options: anchored
5526  No first char  No first char
# Line 5573  No match Line 5546  No match
5546      123456\P      123456\P
5547  No match  No match
5548    
5549  /abc/>testsavedregex  /abc/I>testsavedregex
5550  Capturing subpattern count = 0  Capturing subpattern count = 0
5551  No options  No options
5552  First char = 'a'  First char = 'a'
# Line 5582  Compiled regex written to testsavedregex Line 5555  Compiled regex written to testsavedregex
5555  <testsavedregex  <testsavedregex
5556  Compiled regex loaded from testsavedregex  Compiled regex loaded from testsavedregex
5557  No study data  No study data
 Capturing subpattern count = 0  
 No options  
 First char = 'a'  
 Need char = 'c'  
5558      abc      abc
5559   0: abc   0: abc
5560      ** Failers      ** Failers
# Line 5593  No match Line 5562  No match
5562      bca      bca
5563  No match  No match
5564    
5565  /abc/F>testsavedregex  /abc/IF>testsavedregex
5566  Capturing subpattern count = 0  Capturing subpattern count = 0
5567  No options  No options
5568  First char = 'a'  First char = 'a'
# Line 5602  Compiled regex written to testsavedregex Line 5571  Compiled regex written to testsavedregex
5571  <testsavedregex  <testsavedregex
5572  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled regex (byte-inverted) loaded from testsavedregex
5573  No study data  No study data
 Capturing subpattern count = 0  
 No options  
 First char = 'a'  
 Need char = 'c'  
5574      abc      abc
5575   0: abc   0: abc
5576      ** Failers      ** Failers
# Line 5613  No match Line 5578  No match
5578      bca      bca
5579  No match  No match
5580    
5581  /(a|b)/S>testsavedregex  /(a|b)/IS>testsavedregex
5582  Capturing subpattern count = 1  Capturing subpattern count = 1
5583  No options  No options
5584  No first char  No first char
# Line 5624  Study data written to testsavedregex Line 5589  Study data written to testsavedregex
5589  <testsavedregex  <testsavedregex
5590  Compiled regex loaded from testsavedregex  Compiled regex loaded from testsavedregex
5591  Study data loaded from testsavedregex  Study data loaded from testsavedregex
 Capturing subpattern count = 1  
 No options  
 No first char  
 No need char  
 Starting byte set: a b  
5592      abc      abc
5593   0: a   0: a
5594   1: a   1: a
# Line 5638  Starting byte set: a b Line 5598  Starting byte set: a b
5598      def      def
5599  No match  No match
5600    
5601  /(a|b)/SF>testsavedregex  /(a|b)/ISF>testsavedregex
5602  Capturing subpattern count = 1  Capturing subpattern count = 1
5603  No options  No options
5604  No first char  No first char
# Line 5649  Study data written to testsavedregex Line 5609  Study data written to testsavedregex
5609  <testsavedregex  <testsavedregex
5610  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled regex (byte-inverted) loaded from testsavedregex
5611  Study data loaded from testsavedregex  Study data loaded from testsavedregex
 Capturing subpattern count = 1  
 No options  
 No first char  
 No need char  
 Starting byte set: a b  
5612      abc      abc
5613   0: a   0: a
5614   1: a   1: a
# Line 5663  Starting byte set: a b Line 5618  Starting byte set: a b
5618      def      def
5619  No match  No match
5620    
5621  ~<(\w+)/?>(.)*</(\1)>~smg  ~<(\w+)/?>(.)*</(\1)>~smgI
5622  Capturing subpattern count = 3  Capturing subpattern count = 3
5623  Max back reference = 1  Max back reference = 1
5624  Partial matching not supported  Partial matching not supported
# Line 5682  Options: anchored Line 5637  Options: anchored
5637  No first char  No first char
5638  No need char  No need char
5639    
5640  /line\nbreak/  /line\nbreak/I
5641  Capturing subpattern count = 0  Capturing subpattern count = 0
5642  No options  No options
5643  First char = 'l'  First char = 'l'
# Line 5692  Need char = 'k' Line 5647  Need char = 'k'
5647      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5648   0: line\x0abreak   0: line\x0abreak
5649    
5650  /line\nbreak/f  /line\nbreak/If
5651  Capturing subpattern count = 0  Capturing subpattern count = 0
5652  Options: firstline  Options: firstline
5653  First char = 'l'  First char = 'l'
# Line 5704  No match Line 5659  No match
5659      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5660  No match  No match
5661    
5662  /line\nbreak/mf  /line\nbreak/Imf
5663  Capturing subpattern count = 0  Capturing subpattern count = 0
5664  Options: multiline firstline  Options: multiline firstline
5665  First char = 'l'  First char = 'l'
# Line 5716  No match Line 5671  No match
5671      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5672  No match  No match
5673    
5674  /ab.cd/P  /ab.cd/IP
5675      ab-cd      ab-cd
5676   0: ab-cd   0: ab-cd
5677      ab=cd      ab=cd
# Line 5726  No match: POSIX code 17: match failed Line 5681  No match: POSIX code 17: match failed
5681      ab\ncd      ab\ncd
5682  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5683    
5684  /ab.cd/Ps  /ab.cd/IPs
5685      ab-cd      ab-cd
5686   0: ab-cd   0: ab-cd
5687      ab=cd      ab=cd
# Line 5734  No match: POSIX code 17: match failed Line 5689  No match: POSIX code 17: match failed
5689      ab\ncd      ab\ncd
5690   0: ab\x0acd   0: ab\x0acd
5691    
5692  /(?i)(?-i)AbCd/  /(?i)(?-i)AbCd/I
5693  Capturing subpattern count = 0  Capturing subpattern count = 0
5694  No options  No options
5695  First char = 'A'  First char = 'A'
# Line 5746  No match Line 5701  No match
5701      abcd      abcd
5702  No match  No match
5703    
5704  /a{11111111111111111111}/  /a{11111111111111111111}/I
5705  Failed: number too big in {} quantifier at offset 22  Failed: number too big in {} quantifier at offset 22
5706    
5707  /(){64294967295}/  /(){64294967295}/I
5708  Failed: number too big in {} quantifier at offset 14  Failed: number too big in {} quantifier at offset 14
5709    
5710  /(){2,4294967295}/  /(){2,4294967295}/I
5711  Failed: number too big in {} quantifier at offset 15  Failed: number too big in {} quantifier at offset 15
5712    
5713  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
5714  Capturing subpattern count = 1  Capturing subpattern count = 1
5715  Max back reference = 1  Max back reference = 1
5716  No options  No options
# Line 5765  Need char = 'B' Line 5720  Need char = 'B'
5720   0: abcdefghijklAkB   0: abcdefghijklAkB
5721   1: k   1: k
5722    
5723  "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"  "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
5724  Capturing subpattern count = 12  Capturing subpattern count = 12
5725  Max back reference = 11  Max back reference = 11
5726  Named capturing subpatterns:  Named capturing subpatterns:
# Line 5799  Need char = 'B' Line 5754  Need char = 'B'
5754  11: k  11: k
5755  12: l  12: l
5756    
5757  "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"  "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5758  Capturing subpattern count = 12  Capturing subpattern count = 12
5759  Max back reference = 11  Max back reference = 11
5760  No options  No options
# Line 5820  Need char = 'B' Line 5775  Need char = 'B'
5775  11: k  11: k
5776  12: l  12: l
5777    
5778  "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"  "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
5779  Capturing subpattern count = 101  Capturing subpattern count = 101
5780  Named capturing subpatterns:  Named capturing subpatterns:
5781    name0     1    name0     1
# Line 5945  Matched, but too many substrings Line 5900  Matched, but too many substrings
5900  13: a  13: a
5901  14: a  14: a
5902    
5903  "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"  "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
5904  Capturing subpattern count = 101  Capturing subpattern count = 101
5905  No options  No options
5906  First char = 'a'  First char = 'a'
# Line 5968  Matched, but too many substrings Line 5923  Matched, but too many substrings
5923  13: a  13: a
5924  14: a  14: a
5925    
5926  /[^()]*(?:\((?R)\)[^()]*)*/  /[^()]*(?:\((?R)\)[^()]*)*/I
5927  Capturing subpattern count = 0  Capturing subpattern count = 0
5928  Partial matching not supported  Partial matching not supported
5929  No options  No options
# Line 5981  No need char Line 5936  No need char
5936      (this(and)that)stuff      (this(and)that)stuff
5937   0: (this(and)that)stuff   0: (this(and)that)stuff
5938    
5939  /[^()]*(?:\((?>(?R))\)[^()]*)*/  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5940  Capturing subpattern count = 0  Capturing subpattern count = 0
5941  Partial matching not supported  Partial matching not supported
5942  No options  No options
# Line 5992  No need char Line 5947  No need char
5947      (this(and)that)      (this(and)that)
5948   0: (this(and)that)   0: (this(and)that)
5949    
5950  /[^()]*(?:\((?R)\))*[^()]*/  /[^()]*(?:\((?R)\))*[^()]*/I
5951  Capturing subpattern count = 0  Capturing subpattern count = 0
5952  Partial matching not supported  Partial matching not supported
5953  No options  No options
# Line 6003  No need char Line 5958  No need char
5958      (this(and)that)      (this(and)that)
5959   0: (this(and)that)   0: (this(and)that)
5960    
5961  /(?:\((?R)\))*[^()]*/  /(?:\((?R)\))*[^()]*/I
5962  Capturing subpattern count = 0  Capturing subpattern count = 0
5963  Partial matching not supported  Partial matching not supported
5964  No options  No options
# Line 6016  No need char Line 5971  No need char
5971      ((this))      ((this))
5972   0: ((this))   0: ((this))
5973    
5974  /(?:\((?R)\))|[^()]*/  /(?:\((?R)\))|[^()]*/I
5975  Capturing subpattern count = 0  Capturing subpattern count = 0
5976  Partial matching not supported  Partial matching not supported
5977  No options  No options
# Line 6031  No need char Line 5986  No need char
5986      ((this))      ((this))
5987   0: ((this))   0: ((this))
5988    
5989  /a(b)c/PN  /a(b)c/IPN
5990      abc      abc
5991  Matched with REG_NOSUB  Matched with REG_NOSUB
5992    
5993  /a(?P<name>b)c/PN  /a(?P<name>b)c/IPN
5994      abc      abc
5995  Matched with REG_NOSUB  Matched with REG_NOSUB
5996    
5997  /\x{100}/  /\x{100}/I
5998  Failed: character value in \x{...} sequence is too large at offset 6  Failed: character value in \x{...} sequence is too large at offset 6
5999    
6000  /\x{0000ff}/  /\x{0000ff}/I
6001  Capturing subpattern count = 0  Capturing subpattern count = 0
6002  No options  No options
6003  First char = 255  First char = 255
6004  No need char  No need char
6005    
6006  /^((?P<A>a1)|(?P<A>a2)b)/  /^((?P<A>a1)|(?P<A>a2)b)/I
6007  Failed: two named subpatterns have the same name at offset 18  Failed: two named subpatterns have the same name at offset 17
6008    
6009  /^((?P<A>a1)|(?P<A>a2)b)/J  /^((?P<A>a1)|(?P<A>a2)b)/IJ
6010  Capturing subpattern count = 3  Capturing subpattern count = 3
6011  Named capturing subpatterns:  Named capturing subpatterns:
6012    A   2    A   2
# Line 6080  no parentheses with name "Z" Line 6035  no parentheses with name "Z"
6035  copy substring Z failed -7  copy substring Z failed -7
6036    C a1 (2) A    C a1 (2) A
6037    
6038  /^(?P<A>a)(?P<A>b)/J  /^(?P<A>a)(?P<A>b)/IJ
6039  Capturing subpattern count = 2  Capturing subpattern count = 2
6040  Named capturing subpatterns:  Named capturing subpatterns:
6041    A   1    A   1
# Line 6094  No need char Line 6049  No need char
6049   2: b   2: b
6050    C a (1) A    C a (1) A
6051    
6052  /^(?P<A>a)(?P<A>b)|cd/J  /^(?P<A>a)(?P<A>b)|cd/IJ
6053  Capturing subpattern count = 2  Capturing subpattern count = 2
6054  Named capturing subpatterns:  Named capturing subpatterns:
6055    A   1    A   1
# Line 6111  No need char Line 6066  No need char
6066   0: cd   0: cd
6067  copy substring A failed -7  copy substring A failed -7
6068    
6069  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/J  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6070  Capturing subpattern count = 4  Capturing subpattern count = 4
6071  Named capturing subpatterns:  Named capturing subpatterns:
6072    A   1    A   1
# Line 6129  No need char Line 6084  No need char
6084   4: gh   4: gh
6085    C ef (2) A    C ef (2) A
6086    
6087  /^((?P<A>a1)|(?P<A>a2)b)/J  /^((?P<A>a1)|(?P<A>a2)b)/IJ
6088  Capturing subpattern count = 3  Capturing subpattern count = 3
6089  Named capturing subpatterns:  Named capturing subpatterns:
6090    A   2    A   2
# Line 6158  no parentheses with name "Z" Line 6113  no parentheses with name "Z"
6113  copy substring Z failed -7  copy substring Z failed -7
6114    G a1 (2) A    G a1 (2) A
6115    
6116  /^(?P<A>a)(?P<A>b)/J  /^(?P<A>a)(?P<A>b)/IJ
6117  Capturing subpattern count = 2  Capturing subpattern count = 2
6118  Named capturing subpatterns:  Named capturing subpatterns:
6119    A   1    A   1
# Line 6172  No need char Line 6127  No need char
6127   2: b   2: b
6128    G a (1) A    G a (1) A
6129    
6130  /^(?P<A>a)(?P<A>b)|cd/J  /^(?P<A>a)(?P<A>b)|cd/IJ
6131  Capturing subpattern count = 2  Capturing subpattern count = 2
6132  Named capturing subpatterns:  Named capturing subpatterns:
6133    A   1    A   1
# Line 6189  No need char Line 6144  No need char
6144   0: cd   0: cd
6145  copy substring A failed -7  copy substring A failed -7
6146    
6147  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/J  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6148  Capturing subpattern count = 4  Capturing subpattern count = 4
6149  Named capturing subpatterns:  Named capturing subpatterns:
6150    A   1    A   1
# Line 6207  No need char Line 6162  No need char
6162   4: gh   4: gh
6163    G ef (2) A    G ef (2) A
6164    
6165  /(?J)^((?P<A>a1)|(?P<A>a2)b)/  /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6166  Capturing subpattern count = 3  Capturing subpattern count = 3
6167  Named capturing subpatterns:  Named capturing subpatterns:
6168    A   2    A   2
# Line 6227  No need char Line 6182  No need char
6182   3: a2   3: a2
6183    C a2 (2) A    C a2 (2) A
6184    
6185  /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/  /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6186  Failed: two named subpatterns have the same name at offset 38  Failed: two named subpatterns have the same name at offset 37
6187    
6188  / In this next test, J is not set at the outer level; consequently it isn't  / In this next test, J is not set at the outer level; consequently it isn't
6189  set in the pattern's options; consequently pcre_get_named_substring() produces  set in the pattern's options; consequently pcre_get_named_substring() produces
6190  a random value. /x  a random value. /Ix
6191  Capturing subpattern count = 1  Capturing subpattern count = 1
6192  Options: extended  Options: extended
6193  First char = 'I'  First char = 'I'
6194  Need char = 'e'  Need char = 'e'
6195    
6196  /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/  /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6197  Capturing subpattern count = 4  Capturing subpattern count = 4
6198  Named capturing subpatterns:  Named capturing subpatterns:
6199    A   1    A   1
# Line 6258  No need char Line 6213  No need char
6213    C b (1) B    C b (1) B
6214    C d (1) C    C d (1) C
6215    
6216  /^(?P<A>a)?(?(A)a|b)/  /^(?P<A>a)?(?(A)a|b)/I
6217  Capturing subpattern count = 1  Capturing subpattern count = 1
6218  Named capturing subpatterns:  Named capturing subpatterns:
6219    A   1    A   1
# Line 6275  No match Line 6230  No match
6230      abc      abc
6231  No match  No match
6232    
6233  /(?:(?(ZZ)a|b)(?P<ZZ>X))+/  /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6234  Capturing subpattern count = 1  Capturing subpattern count = 1
6235  Named capturing subpatterns:  Named capturing subpatterns:
6236    ZZ   1    ZZ   1
# Line 6286  Need char = 'X' Line 6241  Need char = 'X'
6241   0: bXaX   0: bXaX
6242   1: X   1: X
6243    
6244  /(?:(?(2y)a|b)(X))+/  /(?:(?(2y)a|b)(X))+/I
6245  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
6246    
6247  /(?:(?(ZA)a|b)(?P<ZZ>X))+/  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6248  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
6249    
6250  /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/  /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6251  Capturing subpattern count = 1  Capturing subpattern count = 1
6252  Named capturing subpatterns:  Named capturing subpatterns:
6253    ZZ   1    ZZ   1
# Line 6303  Need char = 'X' Line 6258  Need char = 'X'
6258   0: bbXaaX   0: bbXaaX
6259   1: X   1: X
6260    
6261  /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/  /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6262  Capturing subpattern count = 1  Capturing subpattern count = 1
6263  Named capturing subpatterns:  Named capturing subpatterns:
6264    ZZ   1    ZZ   1
# Line 6314  Need char = 'X' Line 6269  Need char = 'X'
6269   0: (b)\Xa\X   0: (b)\Xa\X
6270   1: X   1: X
6271    
6272  /(?P<ABC/  /(?P<ABC/I
6273  Failed: syntax error after (?P at offset 7  Failed: syntax error in subpattern name (missing terminator) at offset 7
6274    
6275  /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/  /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6276  Capturing subpattern count = 1  Capturing subpattern count = 1
6277  Max back reference = 1  Max back reference = 1
6278  Named capturing subpatterns:  Named capturing subpatterns:
# Line 6332  No need char Line 6287  No need char
6287   0: bX   0: bX
6288   1: X   1: X
6289    
6290  /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/  /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6291  Capturing subpattern count = 10  Capturing subpattern count = 10
6292  Max back reference = 10  Max back reference = 10
6293  Named capturing subpatterns:  Named capturing subpatterns:
# Line 6353  No need char Line 6308  No need char
6308   9:   9:
6309  10: Y  10: Y
6310    
6311  /\777/  /\777/I
6312  Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
6313    
6314  /\s*,\s*/S  /\s*,\s*/IS
6315  Capturing subpattern count = 0  Capturing subpattern count = 0
6316  Partial matching not supported  Partial matching not supported
6317  No options  No options
# Line 6368  Starting byte set: \x09 \x0a \x0c \x0d \ Line 6323  Starting byte set: \x09 \x0a \x0c \x0d \
6323      \x0c,\x0d      \x0c,\x0d
6324   0: \x0c,\x0d   0: \x0c,\x0d
6325    
6326  /^abc/m  /^abc/Im
6327  Capturing subpattern count = 0  Capturing subpattern count = 0
6328  Options: multiline  Options: multiline
6329  First char at start or follows newline  First char at start or follows newline
# Line 6396  No match Line 6351  No match
6351      xyz\rabc\<lf>      xyz\rabc\<lf>
6352  No match  No match
6353    
6354  /abc$/m  /abc$/Im<lf>
6355  Capturing subpattern count = 0  Capturing subpattern count = 0
6356  Options: multiline  Options: multiline
6357    Forced newline sequence: LF
6358  First char = 'a'  First char = 'a'
6359  Need char = 'c'  Need char = 'c'
6360      xyzabc      xyzabc
# Line 6426  No match Line 6382  No match
6382      xyzabc\r\npqr      xyzabc\r\npqr
6383  No match  No match
6384    
6385  /^abc/m<cr>  /^abc/Im<cr>
6386  Capturing subpattern count = 0  Capturing subpattern count = 0
6387  Options: multiline  Options: multiline
6388  Forced newline sequence: CR  Forced newline sequence: CR
# Line 6441  No match Line 6397  No match
6397      xyz\nabcdef      xyz\nabcdef
6398  No match  No match
6399    
6400  /^abc/m<lf>  /^abc/Im<lf>
6401  Capturing subpattern count = 0  Capturing subpattern count = 0
6402  Options: multiline  Options: multiline
6403  Forced newline sequence: LF  Forced newline sequence: LF
# Line 6456  No match Line 6412  No match
6412      xyz\rabcdef      xyz\rabcdef
6413  No match  No match
6414    
6415  /^abc/m<crlf>  /^abc/Im<crlf>
6416  Capturing subpattern count = 0  Capturing subpattern count = 0
6417  Options: multiline  Options: multiline
6418  Forced newline sequence: CRLF  Forced newline sequence: CRLF
# Line 6471  No match Line 6427  No match
6427      xyz\rabcdef      xyz\rabcdef
6428  No match  No match
6429    
6430  /^abc/m<bad>  /^abc/Im<bad>
6431  Unknown newline type at: <bad>  Unknown newline type at: <bad>
6432    
6433    
6434  /abc/  /abc/I
6435  Capturing subpattern count = 0  Capturing subpattern count = 0
6436  No options  No options
6437  First char = 'a'  First char = 'a'
# Line 6485  Unknown newline type at: Line 6441  Unknown newline type at:
6441      abc      abc
6442   0: abc   0: abc
6443    
6444  /.*/  /.*/I<lf>
6445  Capturing subpattern count = 0  Capturing subpattern count = 0
6446  Partial matching not supported  Partial matching not supported
6447  No options  Options:
6448    Forced newline sequence: LF
6449  First char at start or follows newline  First char at start or follows newline
6450  No need char  No need char
6451      abc\ndef      abc\ndef
# Line 6510  No need char Line 6467  No need char
6467      \<crlf>abc\r\ndef      \<crlf>abc\r\ndef
6468   0: abc   0: abc
6469    
6470  /\w+(.)(.)?def/s  /\w+(.)(.)?def/Is
6471  Capturing subpattern count = 2  Capturing subpattern count = 2
6472  Partial matching not supported  Partial matching not supported
6473  Options: dotall  Options: dotall
# Line 6527  Need char = 'f' Line 6484  Need char = 'f'
6484   1: \x0d   1: \x0d
6485   2: \x0a   2: \x0a
6486    
6487  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6488  Capturing subpattern count = 1  Capturing subpattern count = 1
6489  Partial matching not supported  Partial matching not supported
6490  No options  No options
# Line 6539  Minimum match() recursion limit = 6 Line 6496  Minimum match() recursion limit = 6
6496   0: /* this is a C style comment */   0: /* this is a C style comment */
6497   1: /* this is a C style comment */   1: /* this is a C style comment */
6498    
6499  /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/  /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6500  Capturing subpattern count = 1  Capturing subpattern count = 1
6501  Named capturing subpatterns:  Named capturing subpatterns:
6502    B   1    B   1
# Line 6547  No options Line 6504  No options
6504  No first char  No first char
6505  Need char = '.'  Need char = '.'
6506    
6507  / End of testinput2 /  /()()()()()()()()()()()()()()()()()()()()
6508  Capturing subpattern count = 0   ()()()()()()()()()()()()()()()()()()()()
6509     ()()()()()()()()()()()()()()()()()()()()
6510     ()()()()()()()()()()()()()()()()()()()()
6511     ()()()()()()()()()()()()()()()()()()()()
6512     (.(.))/Ix
6513    Capturing subpattern count = 102
6514    Options: extended
6515    No first char
6516    No need char
6517        XY\O400
6518     0: XY
6519     1:
6520     2:
6521     3:
6522     4:
6523     5:
6524     6:
6525     7:
6526     8:
6527     9:
6528    10:
6529    11:
6530    12:
6531    13:
6532    14:
6533    15:
6534    16:
6535    17:
6536    18:
6537    19:
6538    20:
6539    21:
6540    22:
6541    23:
6542    24:
6543    25:
6544    26:
6545    27:
6546    28:
6547    29:
6548    30:
6549    31:
6550    32:
6551    33:
6552    34:
6553    35:
6554    36:
6555    37:
6556    38:
6557    39:
6558    40:
6559    41:
6560    42:
6561    43:
6562    44:
6563    45:
6564    46:
6565    47:
6566    48:
6567    49:
6568    50:
6569    51:
6570    52:
6571    53:
6572    54:
6573    55:
6574    56:
6575    57:
6576    58:
6577    59:
6578    60:
6579    61:
6580    62:
6581    63:
6582    64:
6583    65:
6584    66:
6585    67:
6586    68:
6587    69:
6588    70:
6589    71:
6590    72:
6591    73:
6592    74:
6593    75:
6594    76:
6595    77:
6596    78:
6597    79:
6598    80:
6599    81:
6600    82:
6601    83:
6602    84:
6603    85:
6604    86:
6605    87:
6606    88:
6607    89:
6608    90:
6609    91:
6610    92:
6611    93:
6612    94:
6613    95:
6614    96:
6615    97:
6616    98:
6617    99:
6618    100:
6619    101: XY
6620    102: Y
6621    
6622    /(a*b|(?i:c*(?-i)d))/IS
6623    Capturing subpattern count = 1
6624    Partial matching not supported
6625  No options  No options
6626  First char = ' '  No first char
6627  Need char = ' '  No need char
6628    Starting byte set: C a b c d
6629    
6630    /()[ab]xyz/IS
6631    Capturing subpattern count = 1
6632    No options
6633    No first char
6634    Need char = 'z'
6635    Starting byte set: a b
6636    
6637    /(|)[ab]xyz/IS
6638    Capturing subpattern count = 1
6639    No options
6640    No first char
6641    Need char = 'z'
6642    Starting byte set: a b
6643    
6644    /(|c)[ab]xyz/IS
6645    Capturing subpattern count = 1
6646    No options
6647    No first char
6648    Need char = 'z'
6649    Starting byte set: a b c
6650    
6651    /(|c?)[ab]xyz/IS
6652    Capturing subpattern count = 1
6653    No options
6654    No first char
6655    Need char = 'z'
6656    Starting byte set: a b c
6657    
6658    /(d?|c?)[ab]xyz/IS
6659    Capturing subpattern count = 1
6660    No options
6661    No first char
6662    Need char = 'z'
6663    Starting byte set: a b c d
6664    
6665    /(d?|c)[ab]xyz/IS
6666    Capturing subpattern count = 1
6667    No options
6668    No first char
6669    Need char = 'z'
6670    Starting byte set: a b c d
6671    
6672    /^a*b\d/D
6673    ------------------------------------------------------------------
6674      0   9 Bra 0
6675      3     ^
6676      4     a*+
6677      6     b
6678      8     \d
6679      9   9 Ket
6680     12     End
6681    ------------------------------------------------------------------
6682    Capturing subpattern count = 0
6683    Partial matching not supported
6684    Options: anchored
6685    No first char
6686    Need char = 'b'
6687    
6688    /^a*+b\d/D
6689    ------------------------------------------------------------------
6690      0   9 Bra 0
6691      3     ^
6692      4     a*+
6693      6     b
6694      8     \d
6695      9   9 Ket
6696     12     End
6697    ------------------------------------------------------------------
6698    Capturing subpattern count = 0
6699    Partial matching not supported
6700    Options: anchored
6701    No first char
6702    Need char = 'b'
6703    
6704    /^a*?b\d/D
6705    ------------------------------------------------------------------
6706      0   9 Bra 0
6707      3     ^
6708      4     a*+
6709      6     b
6710      8     \d
6711      9   9 Ket
6712     12     End
6713    ------------------------------------------------------------------
6714    Capturing subpattern count = 0
6715    Partial matching not supported
6716    Options: anchored
6717    No first char
6718    Need char = 'b'
6719    
6720    /^a+A\d/D
6721    ------------------------------------------------------------------
6722      0   9 Bra 0
6723      3     ^
6724      4     a++
6725      6     A
6726      8     \d
6727      9   9 Ket
6728     12     End
6729    ------------------------------------------------------------------
6730    Capturing subpattern count = 0
6731    Partial matching not supported
6732    Options: anchored
6733    No first char
6734    Need char = 'A'
6735        aaaA5
6736     0: aaaA5
6737        ** Failers
6738    No match
6739        aaaa5
6740    No match
6741    
6742    /^a*A\d/IiD
6743    ------------------------------------------------------------------
6744      0   9 Bra 0
6745      3     ^
6746      4     a*
6747      6  NC A
6748      8     \d
6749      9   9 Ket
6750     12     End
6751    ------------------------------------------------------------------
6752    Capturing subpattern count = 0
6753    Partial matching not supported
6754    Options: anchored caseless
6755    No first char
6756    Need char = 'A' (caseless)
6757        aaaA5
6758     0: aaaA5
6759        aaaa5
6760     0: aaaa5
6761    
6762    /(a*|b*)[cd]/IS
6763    Capturing subpattern count = 1
6764    Partial matching not supported
6765    No options
6766    No first char
6767    No need char
6768    Starting byte set: a b c d
6769    
6770    /(a+|b*