/[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 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 210 by ph10, Wed Aug 8 14:24:50 2007 UTC
# Line 1  Line 1 
1  PCRE version 5.0 13-Sep-2004  /(a)b|/I
   
 /(a)b|/  
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 24  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 40  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 80  No match Line 78  No match
78      def\nabc      def\nabc
79  No match  No match
80    
81  /ab\gdef/X  /ab\idef/X
82  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
83    
84  /(?X)ab\gdef/X  /(?X)ab\idef/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 113  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 \n  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 \n  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 137  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 148  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 159  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 186  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 199  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 224  Matched, but too many substrings Line 222  Matched, but too many substrings
222   0: abcb   0: abcb
223   1: a   1: a
224   2: b   2: b
225      \O12abcb      \O12abcb
226   0: abcb   0: abcb
227   1: a   1: a
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 272  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 289  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 299  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 314  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 324  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
329  First char at start or follows \n  First char at start or follows newline
330  No need char  No need char
331      defabc      defabc
332   0: defabc   0: defabc
# Line 340  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 361  No match: POSIX code 17: match failed Line 359  No match: POSIX code 17: match failed
359   0: def   0: def
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
367  No match: POSIX code 17: match failed  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 401  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
406  No first char  No first char
407  No need char  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 419  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 428  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 436  First char = '<' Line 434  First char = '<'
434  Need char = '>'  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 446  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 454  First char = '<' Line 452  First char = '<'
452  Need char = '>'  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 463  First char = '=' Line 461  First char = '='
461  Need char = '='  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 472  First char = '=' Line 470  First char = '='
470  Need char = '='  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'
478  Need char = 'o'  Need char = 'o'
479      foo      foo
480   0: foo   0: foo
481      catfoo      catfoo
482   0: foo   0: foo
483      *** Failers      *** Failers
484  No match  No match
485      the barfoo      the barfoo
486  No match  No match
487      and cattlefoo      and cattlefoo
488  No match  No match
489    
490  /(?<=a+)b/  /(?<=a+)b/
# Line 498  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
 Case state changes  
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 \n  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 \n  First char at start or follows newline
561  No need char  No need char
562    
563  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  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: malformed number after (?( at offset 4  Failed: missing ) at offset 6
571    
572    /(?(1a))/
573    Failed: reference to non-existent subpattern at offset 6
574    
575  /(?(?i))/  /(?(?i))/
576  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
577    
578  /(?(abc))/  /(?(abc))/
579  Failed: assertion expected after (?( at offset 3  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 589  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
596  No options  No options
 Case state changes  
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)/IDZS
601  ------------------------------------------------------------------  ------------------------------------------------------------------
602    0  15 Bra 0          Bra
603    3   7 Bra 1          CBra 1
604    6  01 Opt       01 Opt
605    8  NC b       NC b
606   10   7 Ket          Ket
607   13  00 Opt       00 Opt
608   15  15 Ket          Ket
609   18     End          End
610  ------------------------------------------------------------------  ------------------------------------------------------------------
611  Capturing subpattern count = 1  Capturing subpattern count = 1
612  No options  No options
 Case state changes  
613  First char = 'b' (caseless)  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
 Case state changes  
621  No first char  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 634  No need char Line 631  No need char
631   0: a   0: a
632      a\n      a\n
633   0: a   0: a
634      *** Failers      *** Failers
635  No match  No match
636      \Za      \Za
637  No match  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 650  No need char Line 647  No need char
647   0: a   0: a
648      a\n      a\n
649   0: a   0: a
650      \Za\n      \Za\n
651   0: a   0: a
652      *** Failers      *** Failers
653  No match  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 \n  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 683  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
708  Need char = 'r'  Need char = 'r'
709      foo\nbarbar      foo\nbarbar
710   0: bar   0: bar
711      ***Failers      ***Failers
712  No match  No match
713      rhubarb      rhubarb
714  No match  No match
715      barbell      barbell
716  No match  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 \n  First char at start or follows newline
724  Need char = 'r'  Need char = 'r'
725      foo\nbarbar      foo\nbarbar
726   0: bar   0: bar
727      ***Failers      ***Failers
728  No match  No match
729      rhubarb      rhubarb
730  No match  No match
731      barbell      barbell
732  No match  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 \n  First char at start or follows newline
740  Need char = 'c'  Need char = 'c'
741      abc      abc
742   0: abc   0: abc
# Line 747  Need char = 'c' Line 744  Need char = 'c'
744   0: abc   0: abc
745      *** Failers      *** Failers
746  No match  No match
747      defabc      defabc
748  No match  No match
749    
750  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  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 778  Need char = 't' Line 771  Need char = 't'
771  No match  No match
772      cart      cart
773  No match  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
 Case state changes  
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
787  First char at start or follows \n  First char at start or follows newline
788  No need char  No need char
789      alphabetabcd      alphabetabcd
790   0: alphabetabcd   0: alphabetabcd
# Line 802  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
 Case state changes  
800  First char = 'Z'  First char = 'Z'
801  Need char = 'Z'  Need char = 'Z'
802      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 809  Need char = 'Z'
809   0: ZZ   0: ZZ
810      bZZ      bZZ
811   0: ZZ   0: ZZ
812      BZZ      BZZ
813   0: ZZ   0: ZZ
814      *** Failers      *** Failers
815  No match  No match
816      ZZ      ZZ
817  No match  No match
818      abXYZZ      abXYZZ
819  No match  No match
820      zzz      zzz
821  No match  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'
829  Need char = 'r'  Need char = 'r'
830      bar      bar
831   0: bar   0: bar
832      foobbar      foobbar
833   0: bar   0: bar
834      *** Failers      *** Failers
835  No match  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
849  No need char  No need char
850      *** Failers      *** Failers
851  No match  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 876  No need char Line 867  No need char
867      aaaaaa      aaaaaa
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 919  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 968  Failed: unrecognized character after (? Line 959  Failed: unrecognized character after (?
959  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
960    
961  /(?(1?)a|b)/  /(?(1?)a|b)/
962  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
963    
964  /(?(1)a|b|c)/  /(?(1)a|b|c)/
965  Failed: conditional group contains more than two branches at offset 10  Failed: conditional group contains more than two branches at offset 10
# Line 991  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 1010  Need char = 'd' Line 1001  Need char = 'd'
1001   1: a   1: a
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 1023  No need char Line 1014  No need char
1014      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1015   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1016   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1017  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1018      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1019   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
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 1044  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 1056  No need char Line 1047  No need char
1047      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1048   0: abcdefghijklmnop   0: abcdefghijklmnop
1049   1: abcdefghijklmnop   1: abcdefghijklmnop
1050  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1051   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
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
1059  No need char  No need char
1060      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1061   0: adef   0: adef
1062   1: a   1: a
1063   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1070  get substring 4 failed -7
1070   1L a   1L a
1071   2L   2L
1072   3L f   3L f
1073      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1074   0: bcdef   0: bcdef
1075   1: bc   1: bc
1076   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1083  get substring 4 failed -7
1083   1L bc   1L bc
1084   2L bc   2L bc
1085   3L f   3L f
1086      adefghijk\C0      adefghijk\C0
1087   0: adef   0: adef
1088   1: a   1: a
1089   2: <unset>   2: <unset>
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
1097  No need char  No need char
1098      abc\00def\L\C0      abc\00def\L\C0
1099   0: abc\x00def   0: abc\x00def
1100   0C abc (7)   0C abc (7)
1101   0L abc   0L abc
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/I
 Memory allocation (code space): 432  
1106  Capturing subpattern count = 8  Capturing subpattern count = 8
1107  Partial matching not supported  Partial matching not supported
1108  No options  No options
1109  First char = 'w'  First char = 'w'
1110  Need char = 'd'  Need char = 'd'
1111    
1112  /.*X/D  /.*X/IDZ
1113  ------------------------------------------------------------------  ------------------------------------------------------------------
1114    0   7 Bra 0          Bra
1115    3     Any*          Any*
1116    5     X          X
1117    7   7 Ket          Ket
1118   10     End          End
1119  ------------------------------------------------------------------  ------------------------------------------------------------------
1120  Capturing subpattern count = 0  Capturing subpattern count = 0
1121  Partial matching not supported  Partial matching not supported
1122  No options  No options
1123  First char at start or follows \n  First char at start or follows newline
1124  Need char = 'X'  Need char = 'X'
1125    
1126  /.*X/Ds  /.*X/IDZs
1127  ------------------------------------------------------------------  ------------------------------------------------------------------
1128    0   7 Bra 0          Bra
1129    3     Any*          Any*
1130    5     X          X
1131    7   7 Ket          Ket
1132   10     End          End
1133  ------------------------------------------------------------------  ------------------------------------------------------------------
1134  Capturing subpattern count = 0  Capturing subpattern count = 0
1135  Partial matching not supported  Partial matching not supported
# Line 1147  Options: anchored dotall Line 1137  Options: anchored dotall
1137  No first char  No first char
1138  Need char = 'X'  Need char = 'X'
1139    
1140  /(.*X|^B)/D  /(.*X|^B)/IDZ
1141  ------------------------------------------------------------------  ------------------------------------------------------------------
1142    0  19 Bra 0          Bra
1143    3   7 Bra 1          CBra 1
1144    6     Any*          Any*
1145    8     X          X
1146   10   6 Alt          Alt
1147   13     ^          ^
1148   14     B          B
1149   16  13 Ket          Ket
1150   19  19 Ket          Ket
1151   22     End          End
1152  ------------------------------------------------------------------  ------------------------------------------------------------------
1153  Capturing subpattern count = 1  Capturing subpattern count = 1
1154  Partial matching not supported  Partial matching not supported
1155  No options  No options
1156  First char at start or follows \n  First char at start or follows newline
1157  No need char  No need char
1158    
1159  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161    0  19 Bra 0          Bra
1162    3   7 Bra 1          CBra 1
1163    6     Any*          Any*
1164    8     X          X
1165   10   6 Alt          Alt
1166   13     ^          ^
1167   14     B          B
1168   16  13 Ket          Ket
1169   19  19 Ket          Ket
1170   22     End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 1  Capturing subpattern count = 1
1173  Partial matching not supported  Partial matching not supported
1174  Options: anchored dotall  Options: anchored dotall
1175  No first char  No first char
1176  No need char  No need char
1177    
1178  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180    0  19 Bra 0          Bra
1181    3   7 Bra 1          CBra 1
1182    6     Any*          Any*
1183    8     X          X
1184   10   6 Alt          Alt
1185   13     ^          ^
1186   14     B          B
1187   16  13 Ket          Ket
1188   19  19 Ket          Ket
1189   22     End          End
1190  ------------------------------------------------------------------  ------------------------------------------------------------------
1191  Capturing subpattern count = 1  Capturing subpattern count = 1
1192  Partial matching not supported  Partial matching not supported
# Line 1204  Options: anchored dotall Line 1194  Options: anchored dotall
1194  No first char  No first char
1195  No need char  No need char
1196    
1197  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
1199    0  25 Bra 0          Bra
1200    3   9 Bra 0          Bra
1201    6  04 Opt       04 Opt
1202    8     Any*          Any*
1203   10     X          X
1204   12   8 Alt          Alt
1205   15  04 Opt       04 Opt
1206   17     ^          ^
1207   18     B          B
1208   20  17 Ket          Ket
1209   23  00 Opt       00 Opt
1210   25  25 Ket          Ket
1211   28     End          End
1212  ------------------------------------------------------------------  ------------------------------------------------------------------
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  Partial matching not supported  Partial matching not supported
1215  No options  No options
1216  First char at start or follows \n  First char at start or follows newline
1217  No need char  No need char
1218    
1219  /\Biss\B/+  /\Biss\B/I+
1220  Capturing subpattern count = 0  Capturing subpattern count = 0
1221  No options  No options
1222  First char = 'i'  First char = 'i'
# Line 1235  Need char = 's' Line 1225  Need char = 's'
1225   0: iss   0: iss
1226   0+ issippi   0+ issippi
1227    
1228  /\Biss\B/+P  /\Biss\B/I+P
1229      Mississippi      Mississippi
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /iss/G+  /iss/IG+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235  No options  No options
1236  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1241  Need char = 's'
1241   0: iss   0: iss
1242   0+ ippi   0+ ippi
1243    
1244  /\Biss\B/G+  /\Biss\B/IG+
1245  Capturing subpattern count = 0  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
# Line 1260  Need char = 's' Line 1250  Need char = 's'
1250   0: iss   0: iss
1251   0+ issippi   0+ issippi
1252    
1253  /\Biss\B/g+  /\Biss\B/Ig+
1254  Capturing subpattern count = 0  Capturing subpattern count = 0
1255  No options  No options
1256  First char = 'i'  First char = 'i'
# Line 1275  No match Line 1265  No match
1265      Mississippi\A      Mississippi\A
1266  No match  No match
1267    
1268  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1269  Capturing subpattern count = 0  Capturing subpattern count = 0
1270  No options  No options
1271  First char = 'i'  First char = 'i'
# Line 1286  Need char = 's' Line 1276  Need char = 's'
1276   0: iss   0: iss
1277   0+ ippi   0+ ippi
1278    
1279  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1280  Capturing subpattern count = 0  Capturing subpattern count = 0
1281  No options  No options
1282  First char = 'i'  First char = 'i'
# Line 1295  Need char = 's' Line 1285  Need char = 's'
1285   0: iss   0: iss
1286   0+ issippi   0+ issippi
1287    
1288  /^iss/g+  /^iss/Ig+
1289  Capturing subpattern count = 0  Capturing subpattern count = 0
1290  Options: anchored  Options: anchored
1291  No first char  No first char
# Line 1303  No need char Line 1293  No need char
1293      ississippi      ississippi
1294   0: iss   0: iss
1295   0+ issippi   0+ issippi
1296    
1297  /.*iss/g+  /.*iss/Ig+
1298  Capturing subpattern count = 0  Capturing subpattern count = 0
1299  Partial matching not supported  Partial matching not supported
1300  No options  No options
1301  First char at start or follows \n  First char at start or follows newline
1302  Need char = 's'  Need char = 's'
1303      abciss\nxyzisspqr      abciss\nxyzisspqr
1304   0: abciss   0: abciss
1305   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1306   0: xyziss   0: xyziss
1307   0+ pqr   0+ pqr
1308    
1309  /.i./+g  /.i./I+g
1310  Capturing subpattern count = 0  Capturing subpattern count = 0
1311  No options  No options
1312  No first char  No first char
# Line 1342  Need char = 'i' Line 1332  Need char = 'i'
1332   0+ river   0+ river
1333   0: riv   0: riv
1334   0+ er   0+ er
1335      Missouri river\A      Missouri river\A
1336   0: Mis   0: Mis
1337   0+ souri river   0+ souri river
1338    
1339  /^.is/+g  /^.is/I+g
1340  Capturing subpattern count = 0  Capturing subpattern count = 0
1341  Options: anchored  Options: anchored
1342  No first char  No first char
# Line 1355  No need char Line 1345  No need char
1345   0: Mis   0: Mis
1346   0+ sissippi   0+ sissippi
1347    
1348  /^ab\n/g+  /^ab\n/Ig+
1349  Capturing subpattern count = 0  Capturing subpattern count = 0
1350  Options: anchored  Options: anchored
1351  No first char  No first char
# Line 1364  No need char Line 1354  No need char
1354   0: ab\x0a   0: ab\x0a
1355   0+ ab\x0acd   0+ ab\x0acd
1356    
1357  /^ab\n/mg+  /^ab\n/Img+
1358  Capturing subpattern count = 0  Capturing subpattern count = 0
1359  Options: multiline  Options: multiline
1360  First char at start or follows \n  First char at start or follows newline
1361  Need char = 10  Need char = 10
1362      ab\nab\ncd      ab\nab\ncd
1363   0: ab\x0a   0: ab\x0a
# Line 1375  Need char = 10 Line 1365  Need char = 10
1365   0: ab\x0a   0: ab\x0a
1366   0+ cd   0+ cd
1367    
1368  /abc/  /abc/I
1369  Capturing subpattern count = 0  Capturing subpattern count = 0
1370  No options  No options
1371  First char = 'a'  First char = 'a'
1372  Need char = 'c'  Need char = 'c'
1373    
1374  /abc|bac/  /abc|bac/I
1375  Capturing subpattern count = 0  Capturing subpattern count = 0
1376  No options  No options
1377  No first char  No first char
1378  Need char = 'c'  Need char = 'c'
1379    
1380  /(abc|bac)/  /(abc|bac)/I
1381  Capturing subpattern count = 1  Capturing subpattern count = 1
1382  No options  No options
1383  No first char  No first char
1384  Need char = 'c'  Need char = 'c'
1385    
1386  /(abc|(c|dc))/  /(abc|(c|dc))/I
1387  Capturing subpattern count = 2  Capturing subpattern count = 2
1388  No options  No options
1389  No first char  No first char
1390  Need char = 'c'  Need char = 'c'
1391    
1392  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1393  Capturing subpattern count = 2  Capturing subpattern count = 2
1394  No options  No options
1395  No first char  No first char
1396  Need char = 'c'  Need char = 'c'
1397    
1398  /a*/  /a*/I
1399  Capturing subpattern count = 0  Capturing subpattern count = 0
1400  Partial matching not supported  Partial matching not supported
1401  No options  No options
1402  No first char  No first char
1403  No need char  No need char
1404    
1405  /a+/  /a+/I
1406  Capturing subpattern count = 0  Capturing subpattern count = 0
1407  Partial matching not supported  Partial matching not supported
1408  No options  No options
1409  First char = 'a'  First char = 'a'
1410  No need char  No need char
1411    
1412  /(baa|a+)/  /(baa|a+)/I
1413  Capturing subpattern count = 1  Capturing subpattern count = 1
1414  Partial matching not supported  Partial matching not supported
1415  No options  No options
1416  No first char  No first char
1417  Need char = 'a'  Need char = 'a'
1418    
1419  /a{0,3}/  /a{0,3}/I
1420  Capturing subpattern count = 0  Capturing subpattern count = 0
1421  Partial matching not supported  Partial matching not supported
1422  No options  No options
1423  No first char  No first char
1424  No need char  No need char
1425    
1426  /baa{3,}/  /baa{3,}/I
1427  Capturing subpattern count = 0  Capturing subpattern count = 0
1428  Partial matching not supported  Partial matching not supported
1429  No options  No options
1430  First char = 'b'  First char = 'b'
1431  Need char = 'a'  Need char = 'a'
1432    
1433  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1434  Capturing subpattern count = 1  Capturing subpattern count = 1
1435  Partial matching not supported  Partial matching not supported
1436  No options  No options
1437  First char = '"'  First char = '"'
1438  Need char = '"'  Need char = '"'
1439    
1440  /(abc|ab[cd])/  /(abc|ab[cd])/I
1441  Capturing subpattern count = 1  Capturing subpattern count = 1
1442  No options  No options
1443  First char = 'a'  First char = 'a'
1444  No need char  No need char
1445    
1446  /(a|.)/  /(a|.)/I
1447  Capturing subpattern count = 1  Capturing subpattern count = 1
1448  No options  No options
1449  No first char  No first char
1450  No need char  No need char
1451    
1452  /a|ba|\w/  /a|ba|\w/I
1453  Capturing subpattern count = 0  Capturing subpattern count = 0
1454  No options  No options
1455  No first char  No first char
1456  No need char  No need char
1457    
1458  /abc(?=pqr)/  /abc(?=pqr)/I
1459  Capturing subpattern count = 0  Capturing subpattern count = 0
1460  No options  No options
1461  First char = 'a'  First char = 'a'
1462  Need char = 'r'  Need char = 'r'
1463    
1464  /...(?<=abc)/  /...(?<=abc)/I
1465  Capturing subpattern count = 0  Capturing subpattern count = 0
1466  No options  No options
1467  No first char  No first char
1468  No need char  No need char
1469    
1470  /abc(?!pqr)/  /abc(?!pqr)/I
1471  Capturing subpattern count = 0  Capturing subpattern count = 0
1472  No options  No options
1473  First char = 'a'  First char = 'a'
1474  Need char = 'c'  Need char = 'c'
1475    
1476  /ab./  /ab./I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  Need char = 'b'  Need char = 'b'
1481    
1482  /ab[xyz]/  /ab[xyz]/I
1483  Capturing subpattern count = 0  Capturing subpattern count = 0
1484  No options  No options
1485  First char = 'a'  First char = 'a'
1486  Need char = 'b'  Need char = 'b'
1487    
1488  /abc*/  /abc*/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
1490  Partial matching not supported  Partial matching not supported
1491  No options  No options
1492  First char = 'a'  First char = 'a'
1493  Need char = 'b'  Need char = 'b'
1494    
1495  /ab.c*/  /ab.c*/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497  Partial matching not supported  Partial matching not supported
1498  No options  No options
1499  First char = 'a'  First char = 'a'
1500  Need char = 'b'  Need char = 'b'
1501    
1502  /a.c*/  /a.c*/I
1503  Capturing subpattern count = 0  Capturing subpattern count = 0
1504  Partial matching not supported  Partial matching not supported
1505  No options  No options
1506  First char = 'a'  First char = 'a'
1507  No need char  No need char
1508    
1509  /.c*/  /.c*/I
1510  Capturing subpattern count = 0  Capturing subpattern count = 0
1511  Partial matching not supported  Partial matching not supported
1512  No options  No options
1513  No first char  No first char
1514  No need char  No need char
1515    
1516  /ac*/  /ac*/I
1517  Capturing subpattern count = 0  Capturing subpattern count = 0
1518  Partial matching not supported  Partial matching not supported
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  No need char  No need char
1522    
1523  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1524  Capturing subpattern count = 1  Capturing subpattern count = 1
1525  Partial matching not supported  Partial matching not supported
1526  No options  No options
1527  No first char  No first char
1528  No need char  No need char
1529    
1530  /a.c*|aba/  /a.c*|aba/I
1531  Capturing subpattern count = 0  Capturing subpattern count = 0
1532  Partial matching not supported  Partial matching not supported
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  No need char  No need char
1536    
1537  /.+a/  /.+a/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
1539  Partial matching not supported  Partial matching not supported
1540  No options  No options
1541  No first char  No first char
1542  Need char = 'a'  Need char = 'a'
1543    
1544  /(?=abcda)a.*/  /(?=abcda)a.*/I
1545  Capturing subpattern count = 0  Capturing subpattern count = 0
1546  Partial matching not supported  Partial matching not supported
1547  No options  No options
1548  First char = 'a'  First char = 'a'
1549  Need char = 'a'  Need char = 'a'
1550    
1551  /(?=a)a.*/  /(?=a)a.*/I
1552  Capturing subpattern count = 0  Capturing subpattern count = 0
1553  Partial matching not supported  Partial matching not supported
1554  No options  No options
1555  First char = 'a'  First char = 'a'
1556  No need char  No need char
1557    
1558  /a(b)*/  /a(b)*/I
1559  Capturing subpattern count = 1  Capturing subpattern count = 1
1560  No options  No options
1561  First char = 'a'  First char = 'a'
1562  No need char  No need char
1563    
1564  /a\d*/  /a\d*/I
1565  Capturing subpattern count = 0  Capturing subpattern count = 0
1566  Partial matching not supported  Partial matching not supported
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /ab\d*/  /ab\d*/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 0
1573  Partial matching not supported  Partial matching not supported
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  Need char = 'b'  Need char = 'b'
1577    
1578  /a(\d)*/  /a(\d)*/I
1579  Capturing subpattern count = 1  Capturing subpattern count = 1
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  No need char  No need char
1583    
1584  /abcde{0,0}/  /abcde{0,0}/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 0
1586  No options  No options
1587  First char = 'a'  First char = 'a'
1588  Need char = 'd'  Need char = 'd'
1589    
1590  /ab\d+/  /ab\d+/I
1591  Capturing subpattern count = 0  Capturing subpattern count = 0
1592  Partial matching not supported  Partial matching not supported
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
1596    
1597  /a(?(1)b)/  /a(?(1)b)/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'g'  Need char = 'g'
1608    
1609  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1610  Capturing subpattern count = 0  Capturing subpattern count = 0
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 0
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'g'  Need char = 'g'
1620    
1621  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 0
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
1626    
1627  /ab\d{0}e/  /ab\d{0}e/I
1628  Capturing subpattern count = 0  Capturing subpattern count = 0
1629  No options  No options
1630  First char = 'a'  First char = 'a'
1631  Need char = 'e'  Need char = 'e'
1632    
1633  /a?b?/  /a?b?/I
1634  Capturing subpattern count = 0  Capturing subpattern count = 0
1635  No options  No options
1636  No first char  No first char
# Line 1655  No need char Line 1645  No need char
1645   0:   0:
1646      *** Failers      *** Failers
1647   0:   0:
1648      \N      \N
1649  No match  No match
1650    
1651  /|-/  /|-/I
1652  Capturing subpattern count = 0  Capturing subpattern count = 0
1653  No options  No options
1654  No first char  No first char
# Line 1671  No need char Line 1661  No need char
1661   0: -   0: -
1662      *** Failers      *** Failers
1663   0:   0:
1664      \Nabc      \Nabc
1665  No match  No match
1666    
1667  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1668      aaaabbbbzzzz      aaaabbbbzzzz
1669   0: aaaabbbbzz   0: aaaabbbbzz
1670   1: bbbb   1: bbbb
# Line 1700  No match Line 1690  No match
1690   1: bbbb   1: bbbb
1691   2: z   2: z
1692   3: z   3: z
1693    
1694  /^.?abcd/S  /^.?abcd/IS
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
1696  Options: anchored  Options: anchored
1697  No first char  No first char
# Line 1715  Study returned NULL Line 1705  Study returned NULL
1705    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1706    )*            # Zero or more contents    )*            # Zero or more contents
1707    \)            # Closing )    \)            # Closing )
1708    /x    /Ix
1709  Capturing subpattern count = 0  Capturing subpattern count = 0
1710  Partial matching not supported  Partial matching not supported
1711  Options: extended  Options: extended
# Line 1727  Need char = ')' Line 1717  Need char = ')'
1717   0: (abcd)   0: (abcd)
1718      xyz(abcd)      xyz(abcd)
1719   0: (abcd)   0: (abcd)
1720      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1721   0: (ab(xy)cd)   0: (ab(xy)cd)
1722      (ab(xycd)pqr      (ab(xycd)pqr
1723   0: (xycd)   0: (xycd)
1724      () abc ()      () abc ()
1725   0: ()   0: ()
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1728      *** Failers      *** Failers
1729  No match  No match
1730      abcd      abcd
1731  No match  No match
1732      abcd)      abcd)
1733  No match  No match
1734      (abcd      (abcd
1735  No match  No match
1736    
1737  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1738  Capturing subpattern count = 1  Capturing subpattern count = 1
1739  Partial matching not supported  Partial matching not supported
1740  Options: extended  Options: extended
1741  First char = '('  First char = '('
1742  Need char = ')'  Need char = ')'
1743      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1744   0: (ab(xy)cd)   0: (ab(xy)cd)
1745   1: cd   1: cd
1746      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1749  Need char = ')'
1749   0: (x(y)z)   0: (x(y)z)
1750   1: z   1: z
1751    
1752  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1753  Capturing subpattern count = 0  Capturing subpattern count = 0
1754  Partial matching not supported  Partial matching not supported
1755  Options: extended  Options: extended
# Line 1769  Need char = ')' Line 1759  Need char = ')'
1759   0: (abcd)   0: (abcd)
1760      (ab(xy)cd)      (ab(xy)cd)
1761   0: (xy)   0: (xy)
1762      (a(b(c)d)e)      (a(b(c)d)e)
1763   0: (c)   0: (c)
1764      ((ab))      ((ab))
1765   0: ((ab))   0: ((ab))
1766      *** Failers      *** Failers
1767  No match  No match
1768      ()      ()
1769  No match  No match
1770    
1771  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1772  Capturing subpattern count = 0  Capturing subpattern count = 0
1773  Partial matching not supported  Partial matching not supported
1774  Options: extended  Options: extended
# Line 1789  Need char = ')' Line 1779  Need char = ')'
1779      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1780   0: (fsh)   0: (fsh)
1781    
1782  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1783  Capturing subpattern count = 1  Capturing subpattern count = 1
1784  Partial matching not supported  Partial matching not supported
1785  Options: extended  Options: extended
# Line 1799  Need char = ')' Line 1789  Need char = ')'
1789   0: (ab(xy)cd)   0: (ab(xy)cd)
1790   1: cd   1: cd
1791    
1792  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1793  Capturing subpattern count = 2  Capturing subpattern count = 2
1794  Partial matching not supported  Partial matching not supported
1795  Options: extended  Options: extended
# Line 1810  Need char = ')' Line 1800  Need char = ')'
1800   1: ab(xy)cd   1: ab(xy)cd
1801   2: cd   2: cd
1802    
1803  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1804  Capturing subpattern count = 3  Capturing subpattern count = 3
1805  Partial matching not supported  Partial matching not supported
1806  Options: extended  Options: extended
# Line 1827  Need char = ')' Line 1817  Need char = ')'
1817   2: ab(xy)cd   2: ab(xy)cd
1818   3: cd   3: cd
1819    
1820  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1821  Capturing subpattern count = 3  Capturing subpattern count = 3
1822  Partial matching not supported  Partial matching not supported
1823  Options: extended  Options: extended
# Line 1844  Need char = ')' Line 1834  Need char = ')'
1834   2: 123   2: 123
1835   3: cd   3: cd
1836    
1837  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1838  Capturing subpattern count = 11  Capturing subpattern count = 11
1839  Partial matching not supported  Partial matching not supported
1840  Options: extended  Options: extended
# Line 1864  Need char = ')' Line 1854  Need char = ')'
1854  10: ab(xy)cd  10: ab(xy)cd
1855  11: cd  11: cd
1856    
1857  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1858  Capturing subpattern count = 3  Capturing subpattern count = 3
1859  Partial matching not supported  Partial matching not supported
1860  Options: extended  Options: extended
# Line 1876  Need char = ')' Line 1866  Need char = ')'
1866   2: 123   2: 123
1867   3: <unset>   3: <unset>
1868    
1869  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1870  Capturing subpattern count = 3  Capturing subpattern count = 3
1871  Partial matching not supported  Partial matching not supported
1872  Options: extended  Options: extended
# Line 1893  Need char = ')' Line 1883  Need char = ')'
1883   2: ij   2: ij
1884   3: (cd(ef)gh)   3: (cd(ef)gh)
1885    
1886  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1887    ------------------------------------------------------------------
1888            Bra
1889            ^
1890            [0-9A-Za-z]
1891            Ket
1892            End
1893    ------------------------------------------------------------------
1894    Capturing subpattern count = 0
1895    Options: anchored
1896    No first char
1897    No need char
1898    
1899    /^[[:^alnum:]]/DZ
1900  ------------------------------------------------------------------  ------------------------------------------------------------------
1901    0  37 Bra 0          Bra
1902    3     ^          ^
1903    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff]
1904   37  37 Ket          Ket
1905   40     End          End
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907  Capturing subpattern count = 0  Capturing subpattern count = 0
1908  Options: anchored  Options: anchored
1909  No first char  No first char
1910  No need char  No need char
1911    
1912  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1913  ------------------------------------------------------------------  ------------------------------------------------------------------
1914    0  37 Bra 0          Bra
1915    3     ^          ^
1916    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1917   37  37 Ket          Ket
1918   40     End          End
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920  Capturing subpattern count = 0  Capturing subpattern count = 0
1921  Options: anchored  Options: anchored
1922  No first char  No first char
1923  No need char  No need char
1924    
1925  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1926  ------------------------------------------------------------------  ------------------------------------------------------------------
1927    0  37 Bra 0          Bra
1928    3     ^          ^
1929    4     [A-Za-z]          [\x00-@[-`{-\xff]
1930   37  37 Ket          Ket
1931   40     End          End
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933  Capturing subpattern count = 0  Capturing subpattern count = 0
1934  Options: anchored  Options: anchored
1935  No first char  No first char
1936  No need char  No need char
1937    
1938  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1939    Capturing subpattern count = 0
1940    No options
1941    No first char
1942    No need char
1943    Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1944      _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1945    
1946    /^[[:ascii:]]/DZ
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948    0  37 Bra 0          Bra
1949    3     ^          ^
1950    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1951   37  37 Ket          Ket
1952   40     End          End
1953  ------------------------------------------------------------------  ------------------------------------------------------------------
1954  Capturing subpattern count = 0  Capturing subpattern count = 0
1955  Options: anchored  Options: anchored
1956  No first char  No first char
1957  No need char  No need char
1958    
1959  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961    0  37 Bra 0          Bra
1962    3     ^          ^
1963    4     [\x00-\x7f]          [\x80-\xff]
1964   37  37 Ket          Ket
1965   40     End          End
1966  ------------------------------------------------------------------  ------------------------------------------------------------------
1967  Capturing subpattern count = 0  Capturing subpattern count = 0
1968  Options: anchored  Options: anchored
1969  No first char  No first char
1970  No need char  No need char
1971    
1972  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [\x80-\xff]          [\x09 ]
1977   37  37 Ket          Ket
1978   40     End          End
1979  ------------------------------------------------------------------  ------------------------------------------------------------------
1980  Capturing subpattern count = 0  Capturing subpattern count = 0
1981  Options: anchored  Options: anchored
1982  No first char  No first char
1983  No need char  No need char
1984    
1985  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff]
1990   37  37 Ket          Ket
1991   40     End          End
1992  ------------------------------------------------------------------  ------------------------------------------------------------------
1993  Capturing subpattern count = 0  Capturing subpattern count = 0
1994  Options: anchored  Options: anchored
1995  No first char  No first char
1996  No need char  No need char
1997    
1998  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1999    Capturing subpattern count = 0
2000    No options
2001    No first char
2002    No need char
2003    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2004    
2005    /^[[:cntrl:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020    0  37 Bra 0          Bra
2021    3     ^          ^
2022    4     [0-9]          [0-9]
2023   37  37 Ket          Ket
2024   40     End          End
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026  Capturing subpattern count = 0  Capturing subpattern count = 0
2027  Options: anchored  Options: anchored
2028  No first char  No first char
2029  No need char  No need char
2030    
2031  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033    0  37 Bra 0          Bra
2034    3     ^          ^
2035    4     [!-~]          [!-~]
2036   37  37 Ket          Ket
2037   40     End          End
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039  Capturing subpattern count = 0  Capturing subpattern count = 0
2040  Options: anchored  Options: anchored
2041  No first char  No first char
2042  No need char  No need char
2043    
2044  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046    0  37 Bra 0          Bra
2047    3     ^          ^
2048    4     [a-z]          [a-z]
2049   37  37 Ket          Ket
2050   40     End          End
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052  Capturing subpattern count = 0  Capturing subpattern count = 0
2053  Options: anchored  Options: anchored
2054  No first char  No first char
2055  No need char  No need char
2056    
2057  /^[[:print:]]/D  /^[[:print:]]/DZ
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059    0  37 Bra 0          Bra
2060    3     ^          ^
2061    4     [ -~]          [ -~]
2062   37  37 Ket          Ket
2063   40     End          End
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065  Capturing subpattern count = 0  Capturing subpattern count = 0
2066  Options: anchored  Options: anchored
2067  No first char  No first char
2068  No need char  No need char
2069    
2070  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072    0  37 Bra 0          Bra
2073    3     ^          ^
2074    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2075   37  37 Ket          Ket
2076   40     End          End
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078  Capturing subpattern count = 0  Capturing subpattern count = 0
2079  Options: anchored  Options: anchored
2080  No first char  No first char
2081  No need char  No need char
2082    
2083  /^[[:space:]]/D  /^[[:space:]]/DZ
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085    0  37 Bra 0          Bra
2086    3     ^          ^
2087    4     [\x09-\x0d ]          [\x09-\x0d ]
2088   37  37 Ket          Ket
2089   40     End          End
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091  Capturing subpattern count = 0  Capturing subpattern count = 0
2092  Options: anchored  Options: anchored
2093  No first char  No first char
2094  No need char  No need char
2095    
2096  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098    0  37 Bra 0          Bra
2099    3     ^          ^
2100    4     [A-Z]          [A-Z]
2101   37  37 Ket          Ket
2102   40     End          End
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104  Capturing subpattern count = 0  Capturing subpattern count = 0
2105  Options: anchored  Options: anchored
2106  No first char  No first char
2107  No need char  No need char
2108    
2109  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111    0  37 Bra 0          Bra
2112    3     ^          ^
2113    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2114   37  37 Ket          Ket
2115   40     End          End
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117  Capturing subpattern count = 0  Capturing subpattern count = 0
2118  Options: anchored  Options: anchored
2119  No first char  No first char
2120  No need char  No need char
2121    
2122  /^[[:word:]]/D  /^[[:word:]]/DZ
2123  ------------------------------------------------------------------  ------------------------------------------------------------------
2124    0  37 Bra 0          Bra
2125    3     ^          ^
2126    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2127   37  37 Ket          Ket
2128   40     End          End
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130  Capturing subpattern count = 0  Capturing subpattern count = 0
2131  Options: anchored  Options: anchored
2132  No first char  No first char
2133  No need char  No need char
2134    
2135  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2136  ------------------------------------------------------------------  ------------------------------------------------------------------
2137    0  37 Bra 0          Bra
2138    3     ^          ^
2139    4     [ -~\x80-\xff]          [ -~\x80-\xff]
2140   37  37 Ket          Ket
2141   40     End          End
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143  Capturing subpattern count = 0  Capturing subpattern count = 0
2144  Options: anchored  Options: anchored
2145  No first char  No first char
2146  No need char  No need char
2147    
2148  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2149  ------------------------------------------------------------------  ------------------------------------------------------------------
2150    0  37 Bra 0          Bra
2151    3     ^          ^
2152    4     [\x00-/12:-\xff]          [\x00-/12:-\xff]
2153   37  37 Ket          Ket
2154   40     End          End
2155  ------------------------------------------------------------------  ------------------------------------------------------------------
2156  Capturing subpattern count = 0  Capturing subpattern count = 0
2157  Options: anchored  Options: anchored
2158  No first char  No first char
2159  No need char  No need char
2160    
2161  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2162  ------------------------------------------------------------------  ------------------------------------------------------------------
2163    0  37 Bra 0          Bra
2164    3     ^          ^
2165    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff]
2166   37  37 Ket          Ket
2167   40     End          End
2168  ------------------------------------------------------------------  ------------------------------------------------------------------
2169  Capturing subpattern count = 0  Capturing subpattern count = 0
2170  Options: anchored  Options: anchored
2171  No first char  No first char
2172  No need char  No need char
2173    
2174  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2175  ------------------------------------------------------------------  ------------------------------------------------------------------
2176    0  36 Bra 0          Bra
2177    3     [%01A-Za-z]          [%01A-Za-z]
2178   36  36 Ket          Ket
2179   39     End          End
2180  ------------------------------------------------------------------  ------------------------------------------------------------------
2181  Capturing subpattern count = 0  Capturing subpattern count = 0
2182  No options  No options
2183  No first char  No first char
2184  No need char  No need char
2185    
2186  /[[.ch.]]/  /[[.ch.]]/I
2187  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2188    
2189  /[[=ch=]]/  /[[=ch=]]/I
2190  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2191    
2192  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2193  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2194    
2195  /[[:upper:]]/i  /[[:upper:]]/Ii
2196  Capturing subpattern count = 0  Capturing subpattern count = 0
2197  Options: caseless  Options: caseless
2198  No first char  No first char
2199  No need char  No need char
2200      A      A
2201   0: A   0: A
2202      a      a
2203   0: a   0: a
2204    
2205  /[[:lower:]]/i  /[[:lower:]]/Ii
2206  Capturing subpattern count = 0  Capturing subpattern count = 0
2207  Options: caseless  Options: caseless
2208  No first char  No first char
2209  No need char  No need char
2210      A      A
2211   0: A   0: A
2212      a      a
2213   0: a   0: a
2214    
2215  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2216  Capturing subpattern count = 1  Capturing subpattern count = 1
2217  Options: caseless  Options: caseless
 Case state changes  
2218  No first char  No first char
2219  No need char  No need char
2220      ab      ab
# Line 2211  No need char Line 2228  No need char
2228   1: a   1: a
2229      Ab      Ab
2230  No match  No match
2231      AB      AB
2232  No match  No match
2233    
2234  /[\200-\410]/  /[\200-\110]/I
2235  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2236    
2237  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2238  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2239    
2240  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2241  Capturing subpattern count = 0  Capturing subpattern count = 0
2242  No options  No options
2243  First char = 'T'  First char = 'T'
2244  Need char = 'd'  Need char = 'd'
2245    
2246  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2247  Capturing subpattern count = 271  Capturing subpattern count = 271
2248  Max back reference = 270  Max back reference = 270
2249  Partial matching not supported  Partial matching not supported
# Line 2507  No need char Line 2524  No need char
2524  270: ABC  270: ABC
2525  271: ABC  271: ABC
2526    
2527  /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
2528  Capturing subpattern count = 0  Capturing subpattern count = 0
2529  No options  No options
2530  First char = 'T'  First char = 'T'
2531  Need char = 't'  Need char = 't'
2532    
2533  /(main(O)?)+/  /(main(O)?)+/I
2534  Capturing subpattern count = 2  Capturing subpattern count = 2
2535  No options  No options
2536  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2542  Need char = 'n'
2542   0: mainOmain   0: mainOmain
2543   1: main   1: main
2544   2: O   2: O
2545    
2546  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2547  Capturing subpattern count = 1  Capturing subpattern count = 1
2548  No options  No options
2549  First char = 'T'  First char = 'T'
2550  Need char = 's'  Need char = 's'
2551    
2552  /^(a(b)?)+$/  /^(a(b)?)+$/I
2553  Capturing subpattern count = 2  Capturing subpattern count = 2
2554  Options: anchored  Options: anchored
2555  No first char  No first char
# Line 2541  No need char Line 2558  No need char
2558   0: aba   0: aba
2559   1: a   1: a
2560   2: b   2: b
2561    
2562  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2563  Capturing subpattern count = 2  Capturing subpattern count = 2
2564  Options: anchored  Options: anchored
2565  No first char  No first char
2566  No need char  No need char
2567      aabbaa      aabbaa
2568   0: aabbaa   0: aabbaa
2569   1: aa   1: aa
2570   2: bb   2: bb
2571    
2572  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2573  Capturing subpattern count = 2  Capturing subpattern count = 2
2574  Options: anchored  Options: anchored
2575  No first char  No first char
2576  No need char  No need char
2577      aabbaa      aabbaa
2578   0: aabbaa   0: aabbaa
2579   1: aa   1: aa
2580   2: bb   2: bb
2581    
2582  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2583  Capturing subpattern count = 2  Capturing subpattern count = 2
2584  Options: anchored  Options: anchored
2585  No first char  No first char
2586  No need char  No need char
2587      aabbaa      aabbaa
2588   0: aabbaa   0: aabbaa
2589   1: aa   1: aa
2590   2: bb   2: bb
2591    
2592  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2593  Capturing subpattern count = 1  Capturing subpattern count = 1
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbaa      aabbaa
2598   0: aabbaa   0: aabbaa
2599   1: bb   1: bb
2600    
2601  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2602  Capturing subpattern count = 3  Capturing subpattern count = 3
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbaa      aabbaa
2607   0: aabbaa   0: aabbaa
2608   1: aa   1: aa
2609   2: bb   2: bb
2610   3: b   3: b
2611    
2612  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2613  Capturing subpattern count = 2  Capturing subpattern count = 2
2614  Options: anchored  Options: anchored
2615  No first char  No first char
2616  No need char  No need char
2617      aabbaa      aabbaa
2618   0: aabbaa   0: aabbaa
2619   1: bb   1: bb
2620   2: b   2: b
2621    
2622  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2623  Capturing subpattern count = 1  Capturing subpattern count = 1
2624  Options: anchored  Options: anchored
2625  No first char  No first char
2626  No need char  No need char
2627      aabbaa      aabbaa
2628   0: aabbaa   0: aabbaa
2629   1: bb   1: bb
2630    
2631  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2632  Capturing subpattern count = 1  Capturing subpattern count = 1
2633  Options: anchored  Options: anchored
2634  No first char  No first char
2635  No need char  No need char
2636      aabbbaa      aabbbaa
2637   0: aabbbaa   0: aabbbaa
2638   1: bbb   1: bbb
2639    
2640  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2641  Capturing subpattern count = 1  Capturing subpattern count = 1
2642  Options: anchored  Options: anchored
2643  No first char  No first char
2644  No need char  No need char
2645      aabbbaa      aabbbaa
2646   0: aabbbaa   0: aabbbaa
2647   1: bbb   1: bbb
2648    
2649  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2650  Capturing subpattern count = 1  Capturing subpattern count = 1
2651  Options: anchored  Options: anchored
2652  No first char  No first char
2653  No need char  No need char
2654      aabbaa      aabbaa
2655   0: aabbaa   0: aabbaa
2656   1: b   1: b
2657    
2658  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2659  Capturing subpattern count = 1  Capturing subpattern count = 1
2660  Options: anchored  Options: anchored
2661  No first char  No first char
2662  No need char  No need char
2663      aabbbaa      aabbbaa
2664   0: aabbbaa   0: aabbbaa
2665   1: bb   1: bb
2666    
2667  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2668  Capturing subpattern count = 3  Capturing subpattern count = 3
2669  Options: anchored  Options: anchored
2670  No first char  No first char
2671  No need char  No need char
2672      aabbbaa      aabbbaa
2673   0: aabbbaa   0: aabbbaa
2674   1: aa   1: aa
2675   2: bbb   2: bbb
2676   3: bb   3: bb
2677    
2678  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2679  Capturing subpattern count = 3  Capturing subpattern count = 3
2680  Options: anchored  Options: anchored
2681  No first char  No first char
2682  No need char  No need char
2683      aabbbbaa      aabbbbaa
2684   0: aabbbbaa   0: aabbbbaa
2685   1: aa   1: aa
2686   2: bbbb   2: bbbb
2687   3: bb   3: bb
2688    
2689  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2690  Capturing subpattern count = 0  Capturing subpattern count = 0
2691  No options  No options
2692  First char = '-'  First char = '-'
2693  Need char = '-'  Need char = '-'
2694    
2695  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2696  ------------------------------------------------------------------  ------------------------------------------------------------------
2697    0   3 Bra 0          Bra
2698    3   3 Ket          Ket
2699    6     End          End
2700  ------------------------------------------------------------------  ------------------------------------------------------------------
2701  Capturing subpattern count = 0  Capturing subpattern count = 0
2702  Options: extended  Options: extended
2703  No first char  No first char
2704  No need char  No need char
2705    
2706  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
2708    0   5 Bra 0          Bra
2709    3     a          a
2710    5   5 Ket          Ket
2711    8     End          End
2712  ------------------------------------------------------------------  ------------------------------------------------------------------
2713  Capturing subpattern count = 0  Capturing subpattern count = 0
2714  Options: extended  Options: extended
2715  First char = 'a'  First char = 'a'
2716  No need char  No need char
2717    
2718  /[\s]/D  /[\s]/DZ
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
2720    0  36 Bra 0          Bra
2721    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2722   36  36 Ket          Ket
2723   39     End          End
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725  Capturing subpattern count = 0  Capturing subpattern count = 0
2726  No options  No options
2727  No first char  No first char
2728  No need char  No need char
2729    
2730  /[\S]/D  /[\S]/DZ
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732    0  36 Bra 0          Bra
2733    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff]
2734   36  36 Ket          Ket
2735   39     End          End
2736  ------------------------------------------------------------------  ------------------------------------------------------------------
2737  Capturing subpattern count = 0  Capturing subpattern count = 0
2738  No options  No options
2739  No first char  No first char
2740  No need char  No need char
2741    
2742  /a(?i)b/D  /a(?i)b/DZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744    0   9 Bra 0          Bra
2745    3     a          a
2746    5  01 Opt       01 Opt
2747    7  NC b       NC b
2748    9   9 Ket          Ket
2749   12     End          End
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751  Capturing subpattern count = 0  Capturing subpattern count = 0
2752  No options  No options
 Case state changes  
2753  First char = 'a'  First char = 'a'
2754  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2755      ab      ab
2756   0: ab   0: ab
2757      aB      aB
2758   0: aB   0: aB
2759      *** Failers      *** Failers
2760  No match  No match
2761      AB      AB
2762  No match  No match
2763    
2764  /(a(?i)b)/D  /(a(?i)b)/DZ
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
2766    0  17 Bra 0          Bra
2767    3   9 Bra 1          CBra 1
2768    6     a          a
2769    8  01 Opt       01 Opt
2770   10  NC b       NC b
2771   12   9 Ket          Ket
2772   15  00 Opt       00 Opt
2773   17  17 Ket          Ket
2774   20     End          End
2775  ------------------------------------------------------------------  ------------------------------------------------------------------
2776  Capturing subpattern count = 1  Capturing subpattern count = 1
2777  No options  No options
 Case state changes  
2778  First char = 'a'  First char = 'a'
2779  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2780      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2783  Need char = 'b' (caseless)
2783      aB      aB
2784   0: aB   0: aB
2785   1: aB   1: aB
2786      *** Failers      *** Failers
2787  No match  No match
2788      AB      AB
2789  No match  No match
2790    
2791  /   (?i)abc/xD  /   (?i)abc/IxDZ
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793    0   9 Bra 0          Bra
2794    3  NC abc       NC abc
2795    9   9 Ket          Ket
2796   12     End          End
2797  ------------------------------------------------------------------  ------------------------------------------------------------------
2798  Capturing subpattern count = 0  Capturing subpattern count = 0
2799  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2801  First char = 'a' (caseless)
2801  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2802    
2803  /#this is a comment  /#this is a comment
2804    (?i)abc/xD    (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806    0   9 Bra 0          Bra
2807    3  NC abc       NC abc
2808    9   9 Ket          Ket
2809   12     End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
2811  Capturing subpattern count = 0  Capturing subpattern count = 0
2812  Options: caseless extended  Options: caseless extended
2813  First char = 'a' (caseless)  First char = 'a' (caseless)
2814  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2815    
2816  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2817  ------------------------------------------------------------------  ------------------------------------------------------------------
2818    0 603 Bra 0          Bra
2819    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2820  603 603 Ket          Ket
2821  606     End          End
2822  ------------------------------------------------------------------  ------------------------------------------------------------------
2823  Capturing subpattern count = 0  Capturing subpattern count = 0
2824  No options  No options
2825  First char = '1'  First char = '1'
2826  Need char = '0'  Need char = '0'
2827    
2828  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2829  ------------------------------------------------------------------  ------------------------------------------------------------------
2830    0 603 Bra 0          Bra
2831    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2832  603 603 Ket          Ket
2833  606     End          End
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835  Capturing subpattern count = 0  Capturing subpattern count = 0
2836  No options  No options
2837  First char = '1'  First char = '1'
2838  Need char = '0'  Need char = '0'
2839    
2840  /\Q\E/D  /\Q\E/DZ
2841  ------------------------------------------------------------------  ------------------------------------------------------------------
2842    0   3 Bra 0          Bra
2843    3   3 Ket          Ket
2844    6     End          End
2845  ------------------------------------------------------------------  ------------------------------------------------------------------
2846  Capturing subpattern count = 0  Capturing subpattern count = 0
2847  No options  No options
# Line 2837  No need char Line 2850  No need char
2850      \      \
2851   0:   0:
2852    
2853  /\Q\Ex/D  /\Q\Ex/DZ
2854  ------------------------------------------------------------------  ------------------------------------------------------------------
2855    0   5 Bra 0          Bra
2856    3     x          x
2857    5   5 Ket          Ket
2858    8     End          End
2859  ------------------------------------------------------------------  ------------------------------------------------------------------
2860  Capturing subpattern count = 0  Capturing subpattern count = 0
2861  No options  No options
2862  First char = 'x'  First char = 'x'
2863  No need char  No need char
2864    
2865  / \Q\E/D  / \Q\E/DZ
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867    0   5 Bra 0          Bra
2868    3  
2869    5   5 Ket          Ket
2870    8     End          End
2871  ------------------------------------------------------------------  ------------------------------------------------------------------
2872  Capturing subpattern count = 0  Capturing subpattern count = 0
2873  No options  No options
2874  First char = ' '  First char = ' '
2875  No need char  No need char
2876    
2877  /a\Q\E/D  /a\Q\E/DZ
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879    0   5 Bra 0          Bra
2880    3     a          a
2881    5   5 Ket          Ket
2882    8     End          End
2883  ------------------------------------------------------------------  ------------------------------------------------------------------
2884  Capturing subpattern count = 0  Capturing subpattern count = 0
2885  No options  No options
# Line 2876  No need char Line 2889  No need char
2889   0: a   0: a
2890    bca    bca
2891   0: a   0: a
2892    bac    bac
2893   0: a   0: a
2894    
2895  /a\Q\Eb/D  /a\Q\Eb/DZ
2896  ------------------------------------------------------------------  ------------------------------------------------------------------
2897    0   7 Bra 0          Bra
2898    3     ab          ab
2899    7   7 Ket          Ket
2900   10     End          End
2901  ------------------------------------------------------------------  ------------------------------------------------------------------
2902  Capturing subpattern count = 0  Capturing subpattern count = 0
2903  No options  No options
# Line 2893  Need char = 'b' Line 2906  Need char = 'b'
2906    abc    abc
2907   0: ab   0: ab
2908    
2909  /\Q\Eabc/D  /\Q\Eabc/DZ
2910  ------------------------------------------------------------------  ------------------------------------------------------------------
2911    0   9 Bra 0          Bra
2912    3     abc          abc
2913    9   9 Ket          Ket
2914   12     End          End
2915  ------------------------------------------------------------------  ------------------------------------------------------------------
2916  Capturing subpattern count = 0  Capturing subpattern count = 0
2917  No options  No options
2918  First char = 'a'  First char = 'a'
2919  Need char = 'c'  Need char = 'c'
2920    
2921  /x*+\w/D  /x*+\w/DZ
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923    0  12 Bra 0          Bra
2924    3   5 Once          x*+
2925    6     x*          \w
2926    8   5 Ket          Ket
2927   11     \w          End
  12  12 Ket  
  15     End  
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929  Capturing subpattern count = 0  Capturing subpattern count = 0
2930  Partial matching not supported  Partial matching not supported
# Line 2924  No need char Line 2935  No need char
2935   0: F   0: F
2936      xxxxx      xxxxx
2937  No match  No match
2938    
2939  /x?+/D  /x?+/DZ
2940  ------------------------------------------------------------------  ------------------------------------------------------------------
2941    0  11 Bra 0          Bra
2942    3   5 Once          x?+
2943    6     x?          Ket
2944    8   5 Ket          End
  11  11 Ket  
  14     End  
2945  ------------------------------------------------------------------  ------------------------------------------------------------------
2946  Capturing subpattern count = 0  Capturing subpattern count = 0
2947  No options  No options
2948  No first char  No first char
2949  No need char  No need char
2950    
2951  /x++/D  /x++/DZ
2952  ------------------------------------------------------------------  ------------------------------------------------------------------
2953    0  11 Bra 0          Bra
2954    3   5 Once          x++
2955    6     x+          Ket
2956    8   5 Ket          End
  11  11 Ket  
  14     End  
2957  ------------------------------------------------------------------  ------------------------------------------------------------------
2958  Capturing subpattern count = 0  Capturing subpattern count = 0
2959  Partial matching not supported  Partial matching not supported
# Line 2954  No options Line 2961  No options
2961  First char = 'x'  First char = 'x'
2962  No need char  No need char
2963    
2964  /x{1,3}+/D  /x{1,3}+/DZ
2965  ------------------------------------------------------------------  ------------------------------------------------------------------
2966    0  15 Bra 0          Bra
2967    3   9 Once          Once
2968    6     x          x
2969    8     x{,2}          x{0,2}
2970   12   9 Ket          Ket
2971   15  15 Ket          Ket
2972   18     End          End
2973  ------------------------------------------------------------------  ------------------------------------------------------------------
2974  Capturing subpattern count = 0  Capturing subpattern count = 0
2975  Partial matching not supported  Partial matching not supported
# Line 2970  No options Line 2977  No options
2977  First char = 'x'  First char = 'x'
2978  No need char  No need char
2979    
2980  /(x)*+/D  /(x)*+/DZ
2981  ------------------------------------------------------------------  ------------------------------------------------------------------
2982    0  18 Bra 0          Bra
2983    3  12 Once          Once
2984    6     Brazero          Brazero
2985    7   5 Bra 1          CBra 1
2986   10     x          x
2987   12   5 KetRmax          KetRmax
2988   15  12 Ket          Ket
2989   18  18 Ket          Ket
2990   21     End          End
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992  Capturing subpattern count = 1  Capturing subpattern count = 1
2993  No options  No options
2994  No first char  No first char
2995  No need char  No need char
2996    
2997  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
2999  Partial matching not supported  Partial matching not supported
3000  Options: anchored  Options: anchored
# Line 3000  No need char Line 3007  No need char
3007  No match  No match
3008      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3009  No match  No match
3010    
3011  /(\d++)(\w)/  /(\d++)(\w)/I
3012  Capturing subpattern count = 2  Capturing subpattern count = 2
3013  Partial matching not supported  Partial matching not supported
3014  No options  No options
# Line 3013  No need char Line 3020  No need char
3020   2: a   2: a
3021      *** Failers      *** Failers
3022  No match  No match
3023      12345+      12345+
3024  No match  No match
3025    
3026  /a++b/  /a++b/I
3027  Capturing subpattern count = 0  Capturing subpattern count = 0
3028  Partial matching not supported  Partial matching not supported
3029  No options  No options
# Line 3025  Need char = 'b' Line 3032  Need char = 'b'
3032      aaab      aaab
3033   0: aaab   0: aaab
3034    
3035  /(a++b)/  /(a++b)/I
3036  Capturing subpattern count = 1  Capturing subpattern count = 1
3037  Partial matching not supported  Partial matching not supported
3038  No options  No options
# Line 3035  Need char = 'b' Line 3042  Need char = 'b'
3042   0: aaab   0: aaab
3043   1: aaab   1: aaab
3044    
3045  /(a++)b/  /(a++)b/I
3046  Capturing subpattern count = 1  Capturing subpattern count = 1
3047  Partial matching not supported  Partial matching not supported
3048  No options  No options
# Line 3045  Need char = 'b' Line 3052  Need char = 'b'
3052   0: aaab   0: aaab
3053   1: aaa   1: aaa
3054    
3055  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3056  Capturing subpattern count = 1  Capturing subpattern count = 1
3057  Partial matching not supported  Partial matching not supported
3058  No options  No options
# Line 3054  No need char Line 3061  No need char
3061      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3062   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3063   1: x   1: x
3064    
3065  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3066  Capturing subpattern count = 1  Capturing subpattern count = 1
3067  Partial matching not supported  Partial matching not supported
3068  No options  No options
# Line 3069  Need char = ')' Line 3076  Need char = ')'
3076   1: xyz   1: xyz
3077      *** Failers      *** Failers
3078  No match  No match
3079      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3080  No match  No match
3081    
3082  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3083  ------------------------------------------------------------------  ------------------------------------------------------------------
3084    0  53 Bra 0          Bra
3085    3  47 Once          Once
3086    6   9 Bra 1          CBra 1
3087    9     abc          abc
3088   15   9 Ket          Ket
3089   18     Brazero          Brazero
3090   19  28 Bra 0          Bra
3091   22   9 Bra 1          CBra 1
3092   25     abc          abc
3093   31   9 Ket          Ket
3094   34     Brazero          Brazero
3095   35   9 Bra 1          CBra 1
3096   38     abc          abc
3097   44   9 Ket          Ket
3098   47  28 Ket          Ket
3099   50  47 Ket          Ket
3100   53  53 Ket          Ket
3101   56     End          End
3102  ------------------------------------------------------------------  ------------------------------------------------------------------
3103  Capturing subpattern count = 1  Capturing subpattern count = 1
3104  No options  No options
3105  First char = 'a'  First char = 'a'
3106  Need char = 'c'  Need char = 'c'
3107    
3108  /a+?+/  /a+?+/I
3109  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3110    
3111  /a{2,3}?+b/  /a{2,3}?+b/I
3112  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3113    
3114  /(?U)a+?+/  /(?U)a+?+/I
3115  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3116    
3117  /a{2,3}?+b/U  /a{2,3}?+b/IU
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /x(?U)a++b/D  /x(?U)a++b/DZ
3121  ------------------------------------------------------------------  ------------------------------------------------------------------
3122    0  15 Bra 0          Bra
3123    3     x          x
3124    5   5 Once          a++
3125    8     a+          b
3126   10   5 Ket          Ket
3127   13     b          End
  15  15 Ket  
  18     End  
3128  ------------------------------------------------------------------  ------------------------------------------------------------------
3129  Capturing subpattern count = 0  Capturing subpattern count = 0
3130  Partial matching not supported  Partial matching not supported
# Line 3129  Need char = 'b' Line 3134  Need char = 'b'
3134      xaaaab      xaaaab
3135   0: xaaaab   0: xaaaab
3136    
3137  /(?U)xa++b/D  /(?U)xa++b/DZ
3138  ------------------------------------------------------------------  ------------------------------------------------------------------
3139    0  15 Bra 0          Bra
3140    3     x          x
3141    5   5 Once          a++
3142    8     a+          b
3143   10   5 Ket          Ket
3144   13     b          End
  15  15 Ket  
  18     End  
3145  ------------------------------------------------------------------  ------------------------------------------------------------------
3146  Capturing subpattern count = 0  Capturing subpattern count = 0
3147  Partial matching not supported  Partial matching not supported
# Line 3148  Need char = 'b' Line 3151  Need char = 'b'
3151      xaaaab      xaaaab
3152   0: xaaaab   0: xaaaab
3153    
3154  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3155  ------------------------------------------------------------------  ------------------------------------------------------------------
3156    0 106 Bra 0          Bra
3157    3     ^          ^
3158    4  99 Bra 1          CBra 1
3159    7   5 Bra 2          CBra 2
3160   10     a+          a+
3161   12   5 Ket          Ket
3162   15  37 Bra 3          CBra 3
3163   18     [ab]+?          [ab]+?
3164   52  37 Ket          Ket
3165   55  37 Bra 4          CBra 4
3166   58     [bc]+          [bc]+
3167   92  37 Ket          Ket
3168   95   5 Bra 5          CBra 5
3169   98     \w*          \w*
3170  100   5 Ket          Ket
3171  103  99 Ket          Ket
3172  106 106 Ket          Ket
3173  109     End          End
3174  ------------------------------------------------------------------  ------------------------------------------------------------------
3175  Capturing subpattern count = 5  Capturing subpattern count = 5
3176  Partial matching not supported  Partial matching not supported
# Line 3175  Options: anchored Line 3178  Options: anchored
3178  No first char  No first char
3179  No need char  No need char
3180    
3181  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3182  ------------------------------------------------------------------  ------------------------------------------------------------------
3183    0  10 Bra 0          Bra
3184    3     ^          ^
3185    4     x          x
3186    6     a+?          a++
3187    8     b          b
3188   10  10 Ket          Ket
3189   13     End          End
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191  Capturing subpattern count = 0  Capturing subpattern count = 0
3192  Partial matching not supported  Partial matching not supported
# Line 3191  Options: anchored Line 3194  Options: anchored
3194  No first char  No first char
3195  Need char = 'b'  Need char = 'b'
3196    
3197  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199    0  16 Bra 0          Bra
3200    3     ^          ^
3201    4     x          x
3202    6   5 Bra 1          CBra 1
3203    9     a+?          a+?
3204   11   5 Ket          Ket
3205   14     b          b
3206   16  16 Ket          Ket
3207   19     End          End
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209  Capturing subpattern count = 1  Capturing subpattern count = 1
3210  Partial matching not supported  Partial matching not supported
# Line 3209  Options: anchored Line 3212  Options: anchored
3212  No first char  No first char
3213  Need char = 'b'  Need char = 'b'
3214    
3215  /[.x.]/  /[.x.]/I
3216  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
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 named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3223    
3224  /\l/  /\l/I
3225  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
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  /\N{name}/  /\N{name}/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  /\u/  /\u/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  /[/  /[/I
3240  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3241    
3242  /[a-/  /[a-/I
3243  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3244    
3245  /[[:space:]/  /[[:space:]/I
3246  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3247    
3248  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3249  ------------------------------------------------------------------  ------------------------------------------------------------------
3250    0  36 Bra 0          Bra
3251    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3252   36  36 Ket          Ket
3253   39     End          End
3254  ------------------------------------------------------------------  ------------------------------------------------------------------
3255  Capturing subpattern count = 0  Capturing subpattern count = 0
3256  No options  No options
3257  No first char  No first char
3258  No need char  No need char
3259    
3260  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3261  ------------------------------------------------------------------  ------------------------------------------------------------------
3262    0  36 Bra 0          Bra
3263    3     [\x09-\x0d ]          [\x09-\x0d ]
3264   36  36 Ket          Ket
3265   39     End          End
3266  ------------------------------------------------------------------  ------------------------------------------------------------------
3267  Capturing subpattern count = 0  Capturing subpattern count = 0
3268  No options  No options
3269  No first char  No first char
3270  No need char  No need char
3271    
3272  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3273  ------------------------------------------------------------------  ------------------------------------------------------------------
3274    0  36 Bra 0          Bra
3275    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3276   36  36 Ket          Ket
3277   39     End          End
3278  ------------------------------------------------------------------  ------------------------------------------------------------------
3279  Capturing subpattern count = 0  Capturing subpattern count = 0
3280  No options  No options
3281  No first char  No first char
3282  No need char  No need char
3283    
3284  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286  Partial matching not supported  Partial matching not supported
3287  Options: extended  Options: extended
# Line 3295  Need char = '>' Line 3295  Need char = '>'
3295   0: <abc <123> hij>   0: <abc <123> hij>
3296      <abc <def> hij>      <abc <def> hij>
3297   0: <def>   0: <def>
3298      <abc<>def>      <abc<>def>
3299   0: <abc<>def>   0: <abc<>def>
3300      <abc<>      <abc<>
3301   0: <>   0: <>
3302      *** Failers      *** Failers
3303  No match  No match
3304      <abc      <abc
3305  No match  No match
3306    
3307  |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|IDZ
 Memory allocation (code space): 826  
3308  ------------------------------------------------------------------  ------------------------------------------------------------------
3309    0 822 Bra 0          Bra
3310    3     8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          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
3311  821     \b          \b
3312  822 822 Ket          Ket
3313  825     End          End
3314  ------------------------------------------------------------------  ------------------------------------------------------------------
3315  Capturing subpattern count = 0  Capturing subpattern count = 0
3316  No options  No options
3317  First char = '8'  First char = '8'
3318  Need char = 'X'  Need char = 'X'
3319    
3320  |\$\<\.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|IDZ
 Memory allocation (code space): 816  
3321  ------------------------------------------------------------------  ------------------------------------------------------------------
3322    0 812 Bra 0          Bra
3323    3     $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          $<.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
3324  811     \b          \b
3325  812 812 Ket          Ket
3326  815     End          End
3327  ------------------------------------------------------------------  ------------------------------------------------------------------
3328  Capturing subpattern count = 0  Capturing subpattern count = 0
3329  No options  No options
# Line 3344  No need char Line 3342  No need char
3342  Capturing subpattern count = 1  Capturing subpattern count = 1
3343  Partial matching not supported  Partial matching not supported
3344  No options  No options
3345  First char at start or follows \n  First char at start or follows newline
3346  No need char  No need char
3347    
3348  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3349  Capturing subpattern count = 1  Capturing subpattern count = 1
3350  Max back reference = 1  Max back reference = 1
# Line 3367  Capturing subpattern count = 2 Line 3365  Capturing subpattern count = 2
3365  Max back reference = 2  Max back reference = 2
3366  Partial matching not supported  Partial matching not supported
3367  No options  No options
3368  First char at start or follows \n  First char at start or follows newline
3369  Need char = 'z'  Need char = 'z'
3370    
3371  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3381  No need char Line 3379  No need char
3379   0: bc123bc   0: bc123bc
3380   1: bc   1: bc
3381   2: bc   2: bc
3382    
3383  /a[b]/I  /a[b]/I
3384  Capturing subpattern count = 0  Capturing subpattern count = 0
3385  No options  No options
# Line 3395  No options Line 3393  No options
3393  First char = 'a'  First char = 'a'
3394  No need char  No need char
3395    
3396  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3397  Capturing subpattern count = 0  Capturing subpattern count = 0
3398  Options: caseless  Options: caseless
3399  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3402  Need char = 'z' (caseless)
3402  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3403  Capturing subpattern count = 0  Capturing subpattern count = 0
3404  No options  No options
 Case state changes  
3405  First char = 'a'  First char = 'a'
3406  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3407    
# Line 3524  No options Line 3521  No options
3521  First char = 'a'  First char = 'a'
3522  Need char = 'b'  Need char = 'b'
3523    
3524  /^a/mI  /^a/Im
3525  Capturing subpattern count = 0  Capturing subpattern count = 0
3526  Options: multiline  Options: multiline
3527  First char at start or follows \n  First char at start or follows newline
3528  Need char = 'a'  Need char = 'a'
3529    abcde    abcde
3530   0: a   0: a
3531    xy\nabc    xy\nabc
3532   0: a   0: a
3533    *** Failers    *** Failers
3534  No match  No match
3535    xyabc    xyabc
3536  No match  No match
3537    
3538  /c|abc/I  /c|abc/I
# Line 3554  Starting byte set: A B a b Line 3551  Starting byte set: A B a b
3551  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3552  Capturing subpattern count = 0  Capturing subpattern count = 0
3553  No options  No options
 Case state changes  
3554  No first char  No first char
3555  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3556  Starting byte set: a b  Starting byte set: a b
3557    
3558  /abc(?C)def/  /abc(?C)def/I
3559  Capturing subpattern count = 0  Capturing subpattern count = 0
3560  No options  No options
3561  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3564  Need char = 'f'
3564  --->abcdef  --->abcdef
3565    0 ^  ^       d    0 ^  ^       d
3566   0: abcdef   0: abcdef
3567      1234abcdef      1234abcdef
3568  --->1234abcdef  --->1234abcdef
3569    0     ^  ^       d    0     ^  ^       d
3570   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3572  Need char = 'f'
3572  No match  No match
3573      abcxyz      abcxyz
3574  No match  No match
3575      abcxyzf      abcxyzf
3576  --->abcxyzf  --->abcxyzf
3577    0 ^  ^        d    0 ^  ^        d
3578  No match  No match
3579    
3580  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3581  Capturing subpattern count = 0  Capturing subpattern count = 0
3582  No options  No options
3583  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3587  Need char = 'f'
3587    0    ^  ^       d    0    ^  ^       d
3588    1    ^    ^     f    1    ^    ^     f
3589   0: abcdef   0: abcdef
3590    
3591  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3592  Capturing subpattern count = 0  Capturing subpattern count = 0
3593  No options  No options
3594  No first char  No first char
# Line 3607  Need char = 'f' Line 3603  Need char = 'f'
3603   0: 4abcdef   0: 4abcdef
3604      *** Failers      *** Failers
3605  No match  No match
3606      abcdef      abcdef
3607  --->abcdef  --->abcdef
3608    1 ^          \d    1 ^          \d
3609    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3612  No match
3612    1     ^      \d    1     ^      \d
3613    1      ^     \d    1      ^     \d
3614  No match  No match
3615    
3616  /(?C255)ab/  /(?C255)ab/I
3617  Capturing subpattern count = 0  Capturing subpattern count = 0
3618  No options  No options
3619  First char = 'a'  First char = 'a'
3620  Need char = 'b'  Need char = 'b'
3621    
3622  /(?C256)ab/  /(?C256)ab/I
3623  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3624    
3625  /(?Cab)xx/  /(?Cab)xx/I
3626  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3627    
3628  /(?C12vr)x/  /(?C12vr)x/I
3629  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3630    
3631  /abc(?C)def/  /abc(?C)def/I
3632  Capturing subpattern count = 0  Capturing subpattern count = 0
3633  No options  No options
3634  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3640  No match
3640    0         ^  ^       d    0         ^  ^       d
3641   0: abcdef   0: abcdef
3642    
3643  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3644  Capturing subpattern count = 1  Capturing subpattern count = 1
3645  No options  No options
3646  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3651  Need char = 'f'
3651    1    ^    ^     f    1    ^    ^     f
3652   0: abcdef   0: abcdef
3653   1: abc   1: abc
3654      123abcdef\C+      123abcdef\C+
3655  Callout 0: last capture = 1  Callout 0: last capture = 1
3656   0: <unset>   0: <unset>
3657   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3664  Callout 1: last capture = 1
3664         ^    ^     f         ^    ^     f
3665   0: abcdef   0: abcdef
3666   1: abc   1: abc
3667      123abcdef\C-      123abcdef\C-
3668   0: abcdef   0: abcdef
3669   1: abc   1: abc
3670      *** Failers      *** Failers
3671  No match  No match
3672      123abcdef\C!1      123abcdef\C!1
3673  --->123abcdef  --->123abcdef
3674    0    ^  ^       d    0    ^  ^       d
3675    1    ^    ^     f    1    ^    ^     f
3676  No match  No match
3677    
3678  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3679  Capturing subpattern count = 1  Capturing subpattern count = 1
3680  No options  No options
3681  No first char  No first char
# Line 3692  No need char Line 3688  No need char
3688    1 ^        ^    )    1 ^        ^    )
3689   0: abcabcabc   0: abcabcabc
3690   1: abc   1: abc
3691      abcabc\C!1!3      abcabc\C!1!3
3692  --->abcabc  --->abcabc
3693    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3694    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3699  No need char
3699  --->*** Failers  --->*** Failers
3700    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3701   0:   0:
3702      abcabcabc\C!1!3      abcabcabc\C!1!3
3703  --->abcabcabc  --->abcabcabc
3704    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3705    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3708  No need char
3708   0: abcabc   0: abcabc
3709   1: abc   1: abc
3710    
3711  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3712  Capturing subpattern count = 1  Capturing subpattern count = 1
3713  Partial matching not supported  Partial matching not supported
3714  No options  No options
# Line 3737  Callout 0: last capture = 1 Line 3733  Callout 0: last capture = 1
3733      ^     ^    )      ^     ^    )
3734   0: 123456   0: 123456
3735   1: 456   1: 456
3736      123456789\C+      123456789\C+
3737  Callout 0: last capture = -1  Callout 0: last capture = -1
3738   0: <unset>   0: <unset>
3739  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3751  Callout 0: last capture = 1
3751   0: 123456789   0: 123456789
3752   1: 789   1: 789
3753    
3754  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3755  Capturing subpattern count = 2  Capturing subpattern count = 2
3756  No options  No options
3757  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3770  Callout 1: last capture = -1
3770   0: xyzabc   0: xyzabc
3771   1: xyzabc   1: xyzabc
3772    
3773  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3774  Capturing subpattern count = 3  Capturing subpattern count = 3
3775  No options  No options
3776  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3792  Callout 1: last capture = 1
3792   1: X   1: X
3793   2: xyzabc   2: xyzabc
3794    
3795  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3796  Capturing subpattern count = 1  Capturing subpattern count = 1
3797  No options  No options
3798  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3805  Callout 0: last capture = 1
3805      ^          a      ^          a
3806   0: abcdef   0: abcdef
3807   1: abc   1: abc
3808    
3809  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3810  Capturing subpattern count = 1  Capturing subpattern count = 1
3811  No options  No options
3812  First char = 'a'  First char = 'a'
3813  Need char = 'z'  Need char = 'z'
3814      abcxyz\C+      abcxyz\C+
3815  Callout 1: last capture = 1  Callout 1: last capture = 1
3816   0: <unset>   0: <unset>
3817   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3823  Callout 2: last capture = -1
3823      ^          a      ^          a
3824   0: abcxyz   0: abcxyz
3825    
3826  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3827  Capturing subpattern count = 1  Capturing subpattern count = 1
3828  No options  No options
3829  First char = 'x'  First char = 'x'
# Line 3840  Callout 0: last capture = 1 Line 3836  Callout 0: last capture = 1
3836         ^       )         ^       )
3837   0: xyz   0: xyz
3838   1: abc   1: abc
3839    
3840  /(?C)abc/  /a(b+)(c*)(?C1)/I
3841    Capturing subpattern count = 2
3842    Partial matching not supported
3843    No options
3844    First char = 'a'
3845    Need char = 'b'
3846        abbbbbccc\C*1
3847    --->abbbbbccc
3848      1 ^        ^
3849    Callout data = 1
3850      1 ^       ^
3851    Callout data = 1
3852      1 ^      ^
3853    Callout data = 1
3854      1 ^     ^
3855    Callout data = 1
3856      1 ^    ^
3857    Callout data = 1
3858      1 ^   ^
3859    Callout data = 1
3860      1 ^  ^
3861    Callout data = 1
3862      1 ^ ^
3863    Callout data = 1
3864    No match
3865    
3866    /a(b+?)(c*?)(?C1)/I
3867    Capturing subpattern count = 2
3868    Partial matching not supported
3869    No options
3870    First char = 'a'
3871    Need char = 'b'
3872        abbbbbccc\C*1
3873    --->abbbbbccc
3874      1 ^ ^
3875    Callout data = 1
3876      1 ^  ^
3877    Callout data = 1
3878      1 ^   ^
3879    Callout data = 1
3880      1 ^    ^
3881    Callout data = 1
3882      1 ^     ^
3883    Callout data = 1
3884      1 ^      ^
3885    Callout data = 1
3886      1 ^       ^
3887    Callout data = 1
3888      1 ^        ^
3889    Callout data = 1
3890    No match
3891    
3892    /(?C)abc/I
3893  Capturing subpattern count = 0  Capturing subpattern count = 0
3894  No options  No options
3895  First char = 'a'  First char = 'a'
3896  Need char = 'c'  Need char = 'c'
3897    
3898  /(?C)^abc/  /(?C)^abc/I
3899  Capturing subpattern count = 0  Capturing subpattern count = 0
3900  Options: anchored  Options: anchored
3901  No first char  No first char
3902  No need char  No need char
3903    
3904  /(?C)a|b/S  /(?C)a|b/IS
3905  Capturing subpattern count = 0  Capturing subpattern count = 0
3906  No options  No options
3907  No first char  No first char
3908  No need char  No need char
3909  Starting byte set: a b  Starting byte set: a b
3910    
3911  /(?R)/  /(?R)/I
3912  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3913    
3914  /(a|(?R))/  /(a|(?R))/I
3915  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3916    
3917  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3918  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3919    
3920  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3921  Capturing subpattern count = 3  Capturing subpattern count = 3
3922  No options  No options
3923  First char = 'x'  First char = 'x'
# Line 3898  No need char Line 3946  No need char
3946   3: xxab   3: xxab
3947      *** Failers      *** Failers
3948  No match  No match
3949      xyab      xyab
3950  No match  No match
3951    
3952  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3953  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3954    
3955  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3956  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3957    
3958  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3959  Capturing subpattern count = 1  Capturing subpattern count = 1
3960  Options: anchored  Options: anchored
3961  No first char  No first char
# Line 3918  No need char Line 3966  No need char
3966      a(b)c      a(b)c
3967   0: a(b)c   0: a(b)c
3968   1: c   1: c
3969      a(b(c))d      a(b(c))d
3970   0: a(b(c))d   0: a(b(c))d
3971   1: d   1: d
3972      *** Failers)      *** Failers)
3973  No match  No match
3974      a(b(c)d      a(b(c)d
3975  No match  No match
3976    
3977  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3978  Capturing subpattern count = 1  Capturing subpattern count = 1
3979  Options: anchored  Options: anchored
3980  No first char  No first char
# Line 3941  Need char = '<' Line 3989  Need char = '<'
3989   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3990   1: (1(2)3)   1: (1(2)3)
3991    
3992  /(a(?1)b)/D  /(a(?1)b)/DZ
3993  ------------------------------------------------------------------  ------------------------------------------------------------------
3994    0  16 Bra 0          Bra
3995    3  10 Bra 1          CBra 1
3996    6     a          a
3997    8   3 Recurse          Once
3998   11     b          Recurse
3999   13  10 Ket          Ket
4000   16  16 Ket          b
4001   19     End          Ket
4002            Ket
4003            End
4004  ------------------------------------------------------------------  ------------------------------------------------------------------
4005  Capturing subpattern count = 1  Capturing subpattern count = 1
4006  No options  No options
4007  First char = 'a'  First char = 'a'
4008  Need char = 'b'  Need char = 'b'
4009    
4010  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4011  ------------------------------------------------------------------  ------------------------------------------------------------------
4012    0  22 Bra 0          Bra
4013    3  16 Bra 1          CBra 1
4014    6     a          a
4015    8   6 Bra 0          Once
4016   11   3 Recurse          Recurse
4017   14   6 KetRmax          KetRmax
4018   17     b          b
4019   19  16 Ket          Ket
4020   22  22 Ket          Ket
4021   25     End          End
4022  ------------------------------------------------------------------  ------------------------------------------------------------------
4023  Capturing subpattern count = 1  Capturing subpattern count = 1
4024  No options  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
4028  /^\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
4029  Capturing subpattern count = 4  Capturing subpattern count = 4
4030  Max back reference = 4  Max back reference = 4
4031  Partial matching not supported  Partial matching not supported
# Line 3998  No need char Line 4048  No need char
4048   2: <unset>   2: <unset>
4049   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4050   4: A   4: A
4051      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4052   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4053   1: <unset>   1: <unset>
4054   2: <unset>   2: <unset>
# Line 4006  No need char Line 4056  No need char
4056   4: A   4: A
4057      *** Failers      *** Failers
4058  No match  No match
4059      The quick brown fox      The quick brown fox
4060  No match  No match
4061    
4062  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4063  Capturing subpattern count = 2  Capturing subpattern count = 2
4064  Partial matching not supported  Partial matching not supported
4065  Options: anchored  Options: anchored
# Line 4029  No need char Line 4079  No need char
4079  No match  No match
4080      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4081  No match  No match
4082    
4083  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4084  Capturing subpattern count = 2  Capturing subpattern count = 2
4085  Options: anchored  Options: anchored
4086  No first char  No first char
# Line 4039  No need char Line 4089  No need char
4089   0: xyz   0: xyz
4090   1: xyz   1: xyz
4091   2: y   2: y
4092      xxyzxyzz      xxyzxyzz
4093   0: xxyzxyzz   0: xxyzxyzz
4094   1: xxyzxyzz   1: xxyzxyzz
4095   2: xyzxyz   2: xyzxyz
# Line 4047  No need char Line 4097  No need char
4097  No match  No match
4098      xxyzz      xxyzz
4099  No match  No match
4100      xxyzxyzxyzz      xxyzxyzxyzz
4101  No match  No match
4102    
4103  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4104  Capturing subpattern count = 2  Capturing subpattern count = 2
4105  Partial matching not supported  Partial matching not supported
4106  Options: extended  Options: extended
# Line 4072  Need char = '>' Line 4122  Need char = '>'
4122   0: <def>   0: <def>
4123   1: <def>   1: <def>
4124   2: <def>   2: <def>
4125      <abc<>def>      <abc<>def>
4126   0: <abc<>def>   0: <abc<>def>
4127   1: <abc<>def>   1: <abc<>def>
4128   2: <abc<>def>   2: <abc<>def>
4129      <abc<>      <abc<>
4130   0: <>   0: <>
4131   1: <>   1: <>
4132   2: <>   2: <>
# Line 4085  No match Line 4135  No match
4135      <abc      <abc
4136  No match  No match
4137    
4138  /(?1)/  /(?1)/I
4139  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4140    
4141  /((?2)(abc)/  /((?2)(abc)/I
4142  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4143    
4144  /^(abc)def(?1)/  /^(abc)def(?1)/I
4145  Capturing subpattern count = 1  Capturing subpattern count = 1
4146  Options: anchored  Options: anchored
4147  No first char  No first char
# Line 4100  No need char Line 4150  No need char
4150   0: abcdefabc   0: abcdefabc
4151   1: abc   1: abc
4152    
4153  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4154  Capturing subpattern count = 1  Capturing subpattern count = 1
4155  Options: anchored  Options: anchored
4156  No first char  No first char
# Line 4111  No need char Line 4161  No need char
4161      a=b      a=b
4162   0: a=b   0: a=b
4163   1: a   1: a
4164      a=bc      a=bc
4165   0: a=bc   0: a=bc
4166   1: a   1: a
4167    
4168  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4169  Capturing subpattern count = 2  Capturing subpattern count = 2
4170  Options: anchored  Options: anchored
4171  No first char  No first char
# Line 4128  No need char Line 4178  No need char
4178   0: a=b   0: a=b
4179   1: a   1: a
4180   2: b   2: b
4181      a=bc      a=bc
4182   0: a=bc   0: a=bc
4183   1: a   1: a
4184   2: c   2: c
4185    
4186  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4187  ------------------------------------------------------------------  ------------------------------------------------------------------
4188    0  28 Bra 0          Bra
4189    3     a          a
4190    5   5 Bra 1          CBra 1
4191    8     b          b
4192   10   5 Alt          Alt
4193   13     c          c
4194   15  10 Ket          Ket
4195   18     d          d
4196   20   5 Bra 2          CBra 2
4197   23     e          e
4198   25   5 Ket          Ket
4199   28  28 Ket          Ket
4200   31     End          End
4201  ------------------------------------------------------------------  ------------------------------------------------------------------
4202  Capturing subpattern count = 2  Capturing subpattern count = 2
4203  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4160  Need char = 'e' Line 4210  Need char = 'e'
4210   0: abde   0: abde
4211   1: b   1: b
4212   2: e   2: e
4213      acde      acde
4214   0: acde   0: acde
4215   1: c   1: c
4216   2: e   2: e
4217    
4218  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4219  ------------------------------------------------------------------  ------------------------------------------------------------------
4220    0  35 Bra 0          Bra
4221    3  21 Bra 0          Bra
4222    6     a          a
4223    8  13 Bra 1          CBra 1
4224   11     c          c
4225   13   5 Bra 2          CBra 2
4226   16     d          d
4227   18   5 Ket          Ket
4228   21  13 Ket          Ket
4229   24  21 Ket          Ket
4230   27   5 Bra 3          CBra 3
4231   30     a          a
4232   32   5 Ket          Ket
4233   35  35 Ket          Ket
4234   38     End          End
4235  ------------------------------------------------------------------  ------------------------------------------------------------------
4236  Capturing subpattern count = 3  Capturing subpattern count = 3
4237  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4192  No options Line 4242  No options
4242  First char = 'a'  First char = 'a'
4243  Need char = 'a'  Need char = 'a'
4244    
4245  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4246  ------------------------------------------------------------------  ------------------------------------------------------------------
4247    0  28 Bra 0          Bra
4248    3   5 Bra 1          CBra 1
4249    6     a          a
4250    8   5 Ket          Ket
4251   11     Any          Any
4252   12     Any          Any
4253   13     Any          Any
4254   14     \1          \1
4255   17     bbb          bbb
4256   23   3 Recurse          Once
4257   26     d          Recurse
4258   28  28 Ket          Ket
4259   31     End          d
4260            Ket
4261            End
4262  ------------------------------------------------------------------  ------------------------------------------------------------------
4263  Capturing subpattern count = 1  Capturing subpattern count = 1
4264  Max back reference = 1  Max back reference = 1
# Line 4216  No options Line 4268  No options
4268  First char = 'a'  First char = 'a'
4269  Need char = 'd'  Need char = 'd'
4270    
4271  /^\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
4272  Capturing subpattern count = 4  Capturing subpattern count = 4
4273  Max back reference = 4  Max back reference = 4
4274  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4244  No need char Line 4296  No need char
4296   2: <unset>   2: <unset>
4297   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4298   4: A   4: A
4299      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4300   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4301   1: <unset>   1: <unset>
4302   2: <unset>   2: <unset>
# Line 4252  No need char Line 4304  No need char
4304   4: A   4: A
4305      *** Failers      *** Failers
4306  No match  No match
4307      The quick brown fox      The quick brown fox
4308  No match  No match
4309    
4310  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4311  Capturing subpattern count = 1  Capturing subpattern count = 1
4312  Max back reference = 1  Max back reference = 1
4313  No options  No options
# Line 4264  No need char Line 4316  No need char
4316    bb    bb
4317   0: bb   0: bb
4318   1: b   1: b
4319    bbaa    bbaa
4320   0: bba   0: bba
4321   1: b   1: b
4322    
4323  /(.*)a/sI  /(.*)a/Is
4324  Capturing subpattern count = 1  Capturing subpattern count = 1
4325  Partial matching not supported  Partial matching not supported
4326  Options: anchored dotall  Options: anchored dotall
4327  No first char  No first char
4328  Need char = 'a'  Need char = 'a'
4329    
4330  /(.*)a\1/sI  /(.*)a\1/Is
4331  Capturing subpattern count = 1  Capturing subpattern count = 1
4332  Max back reference = 1  Max back reference = 1
4333  Partial matching not supported  Partial matching not supported
# Line 4283  Options: dotall Line 4335  Options: dotall
4335  No first char  No first char
4336  Need char = 'a'  Need char = 'a'
4337    
4338  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4339  Capturing subpattern count = 2  Capturing subpattern count = 2
4340  Max back reference = 2  Max back reference = 2
4341  Partial matching not supported  Partial matching not supported
# Line 4291  Options: anchored dotall Line 4343  Options: anchored dotall
4343  No first char  No first char
4344  Need char = 'b'  Need char = 'b'
4345    
4346  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4347  Capturing subpattern count = 3  Capturing subpattern count = 3
4348  Partial matching not supported  Partial matching not supported
4349  Options: anchored dotall  Options: anchored dotall
4350  No first char  No first char
4351  Need char = 'z'  Need char = 'z'
4352    
4353  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4354  Capturing subpattern count = 3  Capturing subpattern count = 3
4355  Max back reference = 1  Max back reference = 1
4356  Partial matching not supported  Partial matching not supported
# Line 4306  Options: dotall Line 4358  Options: dotall
4358  No first char  No first char
4359  Need char = 'z'  Need char = 'z'
4360    
4361  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4362  Capturing subpattern count = 3  Capturing subpattern count = 3
4363  Max back reference = 2  Max back reference = 2
4364  Partial matching not supported  Partial matching not supported
# Line 4314  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\3/sI  /((.*)a|(.*)b)z\3/Is
4370  Capturing subpattern count = 3  Capturing subpattern count = 3
4371  Max back reference = 3  Max back reference = 3
4372  Partial matching not supported  Partial matching not supported
# Line 4322  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 4330  Options: anchored dotall Line 4382  Options: anchored dotall
4382  No first char  No first char
4383  Need char = 'z'  Need char = 'z'
4384    
4385  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4386  Capturing subpattern count = 31  Capturing subpattern count = 31
4387  Partial matching not supported  Partial matching not supported
4388  Options: anchored dotall  Options: anchored dotall
4389  No first char  No first char
4390  No need char  No need char
4391    
4392  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4393  Capturing subpattern count = 31  Capturing subpattern count = 31
4394  Max back reference = 31  Max back reference = 31
4395  Partial matching not supported  Partial matching not supported
# Line 4345  Options: dotall Line 4397  Options: dotall
4397  No first char  No first char
4398  No need char  No need char
4399    
4400  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4401  Capturing subpattern count = 32  Capturing subpattern count = 32
4402  Max back reference = 32  Max back reference = 32
4403  Partial matching not supported  Partial matching not supported
# Line 4353  Options: dotall Line 4405  Options: dotall
4405  No first char  No first char
4406  No need char  No need char
4407    
4408  /(a)(bc)/ND  /(a)(bc)/INDZ
4409  ------------------------------------------------------------------  ------------------------------------------------------------------
4410    0  21 Bra 0          Bra
4411    3   5 Bra 0          Bra
4412    6     a          a
4413    8   5 Ket          Ket
4414   11   7 Bra 0          Bra
4415   14     bc          bc
4416   18   7 Ket          Ket
4417   21  21 Ket          Ket
4418   24     End          End
4419  ------------------------------------------------------------------  ------------------------------------------------------------------
4420  Capturing subpattern count = 0  Capturing subpattern count = 0
4421  Options:  Options: no_auto_capture
4422  First char = 'a'  First char = 'a'
4423  Need char = 'c'  Need char = 'c'
4424    abc    abc
4425   0: abc   0: abc
4426    
4427  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4428  ------------------------------------------------------------------  ------------------------------------------------------------------
4429    0  21 Bra 0          Bra
4430    3   5 Bra 1          CBra 1
4431    6     a          a
4432    8   5 Ket          Ket
4433   11   7 Bra 0          Bra
4434   14     bc          bc
4435   18   7 Ket          Ket
4436   21  21 Ket          Ket
4437   24     End          End
4438  ------------------------------------------------------------------  ------------------------------------------------------------------
4439  Capturing subpattern count = 1  Capturing subpattern count = 1
4440  Named capturing subpatterns:  Named capturing subpatterns:
4441    one   1    one   1
4442  Options:  Options: no_auto_capture
4443  First char = 'a'  First char = 'a'
4444  Need char = 'c'  Need char = 'c'
4445    abc    abc
4446   0: abc   0: abc
4447   1: a   1: a
4448    
4449  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4450  ------------------------------------------------------------------  ------------------------------------------------------------------
4451    0  21 Bra 0          Bra
4452    3   5 Bra 0          Bra
4453    6     a          a
4454    8   5 Ket          Ket
4455   11   7 Bra 1          CBra 1
4456   14     bc          bc
4457   18   7 Ket          Ket
4458   21  21 Ket          Ket
4459   24     End          End
4460  ------------------------------------------------------------------  ------------------------------------------------------------------
4461  Capturing subpattern count = 1  Capturing subpattern count = 1
4462  Named capturing subpatterns:  Named capturing subpatterns:
4463    named   1    named   1
4464  Options:  Options: no_auto_capture
4465  First char = 'a'  First char = 'a'
4466  Need char = 'c'  Need char = 'c'
4467    
4468  /(a+)*zz/  /(a+)*zz/I
4469  Capturing subpattern count = 1  Capturing subpattern count = 1
4470  Partial matching not supported  Partial matching not supported
4471  No options  No options
4472  No first char  No first char
4473  Need char = 'z'  Need char = 'z'
4474    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4475  Minimum match limit = 8  Minimum match() limit = 8
4476    Minimum match() recursion limit = 6
4477   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4478   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4479    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4480  Minimum match limit = 32768  Minimum match() limit = 32768
4481    Minimum match() recursion limit = 42
4482  No match  No match
4483    
4484  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4485  Capturing subpattern count = 1  Capturing subpattern count = 1
4486  No options  No options
4487  First char = 'a'  First char = 'a'
# Line 4454  Callout data = 1 Line 4508  Callout data = 1
4508  Callout data = -1  Callout data = -1
4509  No match  No match
4510    
4511  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4512  Capturing subpattern count = 2  Capturing subpattern count = 2
4513  Named capturing subpatterns:  Named capturing subpatterns:
4514    one   1    one   1
# Line 4471  Need char = 'h' Line 4525  Need char = 'h'
4525   1: cd   1: cd
4526   2: gh   2: gh
4527   1C cd (2)   1C cd (2)
4528   2G gh (2)    G gh (2) two
4529      abcdefgh\Cone\Ctwo      abcdefgh\Cone\Ctwo
4530   0: abcdefgh   0: abcdefgh
4531   1: cd   1: cd
4532   2: gh   2: gh
4533   1C cd (2)    C cd (2) one
4534   2C gh (2)    C gh (2) two
4535      abcdefgh\Cthree      abcdefgh\Cthree
4536  no parentheses with name "three"  no parentheses with name "three"
4537   0: abcdefgh   0: abcdefgh
4538   1: cd   1: cd
4539   2: gh   2: gh
4540    copy substring three failed -7
4541    
4542  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
4543  ------------------------------------------------------------------  ------------------------------------------------------------------
4544    0  15 Bra 0          Bra
4545    3   3 Bra 1          CBra 1
4546    6   3 Ket          Ket
4547    9   3 Bra 2          CBra 2
4548   12   3 Ket          Ket
4549   15  15 Ket          Ket
4550   18     End          End
4551  ------------------------------------------------------------------  ------------------------------------------------------------------
4552  Capturing subpattern count = 2  Capturing subpattern count = 2
4553  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4502  No options Line 4557  No options
4557  No first char  No first char
4558  No need char  No need char
4559    
4560  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
4561  ------------------------------------------------------------------  ------------------------------------------------------------------
4562    0  15 Bra 0          Bra
4563    3   3 Bra 1          CBra 1
4564    6   3 Ket          Ket
4565    9   3 Bra 2          CBra 2
4566   12   3 Ket          Ket
4567   15  15 Ket          Ket
4568   18     End          End
4569  ------------------------------------------------------------------  ------------------------------------------------------------------
4570  Capturing subpattern count = 2  Capturing subpattern count = 2
4571  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4520  No options Line 4575  No options
4575  No first char  No first char
4576  No need char  No need char
4577    
4578  /(?P<Z>zz)(?P<A>aa)/  /(?P<Z>zz)(?P<A>aa)/I
4579  Capturing subpattern count = 2  Capturing subpattern count = 2
4580  Named capturing subpatterns:  Named capturing subpatterns:
4581    A   2    A   2
# Line 4532  Need char = 'a' Line 4587  Need char = 'a'
4587   0: zzaa   0: zzaa
4588   1: zz   1: zz
4589   2: aa   2: aa
4590   1C zz (2)    C zz (2) Z
4591      zzaa\CA      zzaa\CA
4592   0: zzaa   0: zzaa
4593   1: zz   1: zz
4594   2: aa   2: aa
4595   2C aa (2)    C aa (2) A
4596    
4597  /(?P<x>eks)(?P<x>eccs)/  /(?P<x>eks)(?P<x>eccs)/I
4598  Failed: two named groups have the same name at offset 16  Failed: two named subpatterns have the same name at offset 15
4599    
4600  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4601  Failed: two named groups have the same name at offset 31  Failed: two named subpatterns have the same name at offset 30