/[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 79 by nigel, Sat Feb 24 21:40:52 2007 UTC revision 231 by ph10, Tue Sep 11 11:15:33 2007 UTC
# Line 1  Line 1 
1  PCRE version 6.1 21-Jun-2005  /(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    Contains explicit CR or LF match
707  Options: multiline  Options: multiline
708  No first char  No first char
709  Need char = 'r'  Need char = 'r'
710      foo\nbarbar      foo\nbarbar
711   0: bar   0: bar
712      ***Failers      ***Failers
713  No match  No match
714      rhubarb      rhubarb
715  No match  No match
716      barbell      barbell
717  No match  No match
718      abc\nbarton      abc\nbarton
719  No match  No match
720    
721  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
722  Capturing subpattern count = 0  Capturing subpattern count = 0
723    Contains explicit CR or LF match
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'r'  Need char = 'r'
727      foo\nbarbar      foo\nbarbar
728   0: bar   0: bar
729      ***Failers      ***Failers
730  No match  No match
731      rhubarb      rhubarb
732  No match  No match
733      barbell      barbell
734  No match  No match
735      abc\nbarton      abc\nbarton
736  No match  No match
737    
738  /(?>^abc)/m  /(?>^abc)/Im
739  Capturing subpattern count = 0  Capturing subpattern count = 0
740  Options: multiline  Options: multiline
741  First char at start or follows \n  First char at start or follows newline
742  Need char = 'c'  Need char = 'c'
743      abc      abc
744   0: abc   0: abc
# Line 747  Need char = 'c' Line 746  Need char = 'c'
746   0: abc   0: abc
747      *** Failers      *** Failers
748  No match  No match
749      defabc      defabc
750  No match  No match
751    
752  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 759  Failed: lookbehind assertion is not fixe
759  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
760    
761  /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'  
762    
763  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
764  Capturing subpattern count = 0  Capturing subpattern count = 0
765  No options  No options
766  First char = '-'  First char = '-'
# Line 778  Need char = 't' Line 773  Need char = 't'
773  No match  No match
774      cart      cart
775  No match  No match
776      horse-and-cart      horse-and-cart
777  No match  No match
778    
779  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
780  Capturing subpattern count = 0  Capturing subpattern count = 0
781  No options  No options
 Case state changes  
782  No first char  No first char
783  No need char  No need char
784    
785  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
786  Capturing subpattern count = 2  Capturing subpattern count = 2
787  Partial matching not supported  Partial matching not supported
788  No options  No options
789  First char at start or follows \n  First char at start or follows newline
790  No need char  No need char
791      alphabetabcd      alphabetabcd
792   0: alphabetabcd   0: alphabetabcd
# Line 802  No need char Line 796  No need char
796   1: <unset>   1: <unset>
797   2: xyz   2: xyz
798    
799  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
800  Capturing subpattern count = 0  Capturing subpattern count = 0
801  No options  No options
 Case state changes  
802  First char = 'Z'  First char = 'Z'
803  Need char = 'Z'  Need char = 'Z'
804      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 811  Need char = 'Z'
811   0: ZZ   0: ZZ
812      bZZ      bZZ
813   0: ZZ   0: ZZ
814      BZZ      BZZ
815   0: ZZ   0: ZZ
816      *** Failers      *** Failers
817  No match  No match
818      ZZ      ZZ
819  No match  No match
820      abXYZZ      abXYZZ
821  No match  No match
822      zzz      zzz
823  No match  No match
824      bzz      bzz
825  No match  No match
826    
827  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
828  Capturing subpattern count = 1  Capturing subpattern count = 1
829  No options  No options
830  First char = 'b'  First char = 'b'
831  Need char = 'r'  Need char = 'r'
832      bar      bar
833   0: bar   0: bar
834      foobbar      foobbar
835   0: bar   0: bar
836      *** Failers      *** Failers
837  No match  No match
838      fooabar      fooabar
839  No match  No match
840    
841  /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
842  Capturing subpattern count = 0  Capturing subpattern count = 0
843  No options  No options
844  First char = 'T'  First char = 'T'
845  Need char = 't'  Need char = 't'
846    
847  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
848  Capturing subpattern count = 1  Capturing subpattern count = 1
849  Options: anchored  Options: anchored
850  No first char  No first char
851  No need char  No need char
852      *** Failers      *** Failers
853  No match  No match
854      a      a
855  No match  No match
856    
857  /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
858  Capturing subpattern count = 0  Capturing subpattern count = 0
859  No options  No options
860  First char = 'T'  First char = 'T'
861  Need char = 'g'  Need char = 'g'
862    
863  /^(a\1?){4}$/  /^(a\1?){4}$/I
864  Capturing subpattern count = 1  Capturing subpattern count = 1
865  Max back reference = 1  Max back reference = 1
866  Options: anchored  Options: anchored
# Line 876  No need char Line 869  No need char
869      aaaaaa      aaaaaa
870   0: aaaaaa   0: aaaaaa
871   1: aa   1: aa
872    
873  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
874  Capturing subpattern count = 0  Capturing subpattern count = 0
875  No options  No options
876  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 912  Failed: reference to non-existent subpat
912  /(a)|\2/  /(a)|\2/
913  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
914    
915  /a[b-a]/i  /a[b-a]/Ii
916  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
917    
918  /a[]b/i  /a[]b/Ii
919  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
920    
921  /a[/i  /a[/Ii
922  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
923    
924  /*a/i  /*a/Ii
925  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
926    
927  /(*)b/i  /(*)b/Ii
928  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
929    
930  /abc)/i  /abc)/Ii
931  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
932    
933  /(abc/i  /(abc/Ii
934  Failed: missing ) at offset 4  Failed: missing ) at offset 4
935    
936  /a**/i  /a**/Ii
937  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
938    
939  /)(/i  /)(/Ii
940  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
941    
942  /:(?:/  /:(?:/
# Line 968  Failed: unrecognized character after (? Line 961  Failed: unrecognized character after (?
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
962    
963  /(?(1?)a|b)/  /(?(1?)a|b)/
964  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
965    
966  /(?(1)a|b|c)/  /(?(1)a|b|c)/
967  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 984  Failed: POSIX code 9: bad escape sequenc
984  /abc/\i  /abc/\i
985  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
986    
987  /(a)bc(d)/  /(a)bc(d)/I
988  Capturing subpattern count = 2  Capturing subpattern count = 2
989  No options  No options
990  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 1003  Need char = 'd'
1003   1: a   1: a
1004   2: d   2: d
1005  copy substring 5 failed -7  copy substring 5 failed -7
1006    
1007  /(.{20})/  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
1009  Partial matching not supported  Partial matching not supported
1010  No options  No options
# Line 1023  No need char Line 1016  No need char
1016      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1017   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1018   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1019  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1020      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1021   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1022   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1023   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1024    
1025  /(.{15})/  /(.{15})/I
1026  Capturing subpattern count = 1  Capturing subpattern count = 1
1027  Partial matching not supported  Partial matching not supported
1028  No options  No options
# Line 1044  No need char Line 1037  No need char
1037   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1038   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1039    
1040  /(.{16})/  /(.{16})/I
1041  Capturing subpattern count = 1  Capturing subpattern count = 1
1042  Partial matching not supported  Partial matching not supported
1043  No options  No options
# Line 1056  No need char Line 1049  No need char
1049      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1050   0: abcdefghijklmnop   0: abcdefghijklmnop
1051   1: abcdefghijklmnop   1: abcdefghijklmnop
1052  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1053   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1054   0L abcdefghijklmnop   0L abcdefghijklmnop
1055   1L abcdefghijklmnop   1L abcdefghijklmnop
1056    
1057  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1058  Capturing subpattern count = 3  Capturing subpattern count = 3
1059  Options: anchored  Options: anchored
1060  No first char  No first char
1061  No need char  No need char
1062      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1063   0: adef   0: adef
1064   1: a   1: a
1065   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1072  get substring 4 failed -7
1072   1L a   1L a
1073   2L   2L
1074   3L f   3L f
1075      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1076   0: bcdef   0: bcdef
1077   1: bc   1: bc
1078   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1085  get substring 4 failed -7
1085   1L bc   1L bc
1086   2L bc   2L bc
1087   3L f   3L f
1088      adefghijk\C0      adefghijk\C0
1089   0: adef   0: adef
1090   1: a   1: a
1091   2: <unset>   2: <unset>
1092   3: f   3: f
1093   0C adef (4)   0C adef (4)
1094    
1095  /^abc\00def/  /^abc\00def/I
1096  Capturing subpattern count = 0  Capturing subpattern count = 0
1097  Options: anchored  Options: anchored
1098  No first char  No first char
1099  No need char  No need char
1100      abc\00def\L\C0      abc\00def\L\C0
1101   0: abc\x00def   0: abc\x00def
1102   0C abc (7)   0C abc (7)
1103   0L abc   0L abc
1104    
1105  /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]+
1106  )((?:[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]+
1107  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1108  Capturing subpattern count = 8  Capturing subpattern count = 8
1109  Partial matching not supported  Partial matching not supported
1110    Contains explicit CR or LF match
1111  No options  No options
1112  First char = 'w'  First char = 'w'
1113  Need char = 'd'  Need char = 'd'
1114    
1115  /.*X/D  /.*X/IDZ
1116  ------------------------------------------------------------------  ------------------------------------------------------------------
1117    0   7 Bra 0          Bra
1118    3     Any*          Any*
1119    5     X          X
1120    7   7 Ket          Ket
1121   10     End          End
1122  ------------------------------------------------------------------  ------------------------------------------------------------------
1123  Capturing subpattern count = 0  Capturing subpattern count = 0
1124  Partial matching not supported  Partial matching not supported
1125  No options  No options
1126  First char at start or follows \n  First char at start or follows newline
1127  Need char = 'X'  Need char = 'X'
1128    
1129  /.*X/Ds  /.*X/IDZs
1130  ------------------------------------------------------------------  ------------------------------------------------------------------
1131    0   7 Bra 0          Bra
1132    3     Any*          Any*
1133    5     X          X
1134    7   7 Ket          Ket
1135   10     End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 0  Capturing subpattern count = 0
1138  Partial matching not supported  Partial matching not supported
# Line 1147  Options: anchored dotall Line 1140  Options: anchored dotall
1140  No first char  No first char
1141  Need char = 'X'  Need char = 'X'
1142    
1143  /(.*X|^B)/D  /(.*X|^B)/IDZ
1144  ------------------------------------------------------------------  ------------------------------------------------------------------
1145    0  19 Bra 0          Bra
1146    3   7 Bra 1          CBra 1
1147    6     Any*          Any*
1148    8     X          X
1149   10   6 Alt          Alt
1150   13     ^          ^
1151   14     B          B
1152   16  13 Ket          Ket
1153   19  19 Ket          Ket
1154   22     End          End
1155  ------------------------------------------------------------------  ------------------------------------------------------------------
1156  Capturing subpattern count = 1  Capturing subpattern count = 1
1157  Partial matching not supported  Partial matching not supported
1158  No options  No options
1159  First char at start or follows \n  First char at start or follows newline
1160  No need char  No need char
1161    
1162  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1163  ------------------------------------------------------------------  ------------------------------------------------------------------
1164    0  19 Bra 0          Bra
1165    3   7 Bra 1          CBra 1
1166    6     Any*          Any*
1167    8     X          X
1168   10   6 Alt          Alt
1169   13     ^          ^
1170   14     B          B
1171   16  13 Ket          Ket
1172   19  19 Ket          Ket
1173   22     End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
1176  Partial matching not supported  Partial matching not supported
1177  Options: anchored dotall  Options: anchored dotall
1178  No first char  No first char
1179  No need char  No need char
1180    
1181  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1182  ------------------------------------------------------------------  ------------------------------------------------------------------
1183    0  19 Bra 0          Bra
1184    3   7 Bra 1          CBra 1
1185    6     Any*          Any*
1186    8     X          X
1187   10   6 Alt          Alt
1188   13     ^          ^
1189   14     B          B
1190   16  13 Ket          Ket
1191   19  19 Ket          Ket
1192   22     End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 1  Capturing subpattern count = 1
1195  Partial matching not supported  Partial matching not supported
# Line 1204  Options: anchored dotall Line 1197  Options: anchored dotall
1197  No first char  No first char
1198  No need char  No need char
1199    
1200  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1201  ------------------------------------------------------------------  ------------------------------------------------------------------
1202    0  25 Bra 0          Bra
1203    3   9 Bra 0          Bra
1204    6  04 Opt       04 Opt
1205    8     Any*          Any*
1206   10     X          X
1207   12   8 Alt          Alt
1208   15  04 Opt       04 Opt
1209   17     ^          ^
1210   18     B          B
1211   20  17 Ket          Ket
1212   23  00 Opt       00 Opt
1213   25  25 Ket          Ket
1214   28     End          End
1215  ------------------------------------------------------------------  ------------------------------------------------------------------
1216  Capturing subpattern count = 0  Capturing subpattern count = 0
1217  Partial matching not supported  Partial matching not supported
1218  No options  No options
1219  First char at start or follows \n  First char at start or follows newline
1220  No need char  No need char
1221    
1222  /\Biss\B/+  /\Biss\B/I+
1223  Capturing subpattern count = 0  Capturing subpattern count = 0
1224  No options  No options
1225  First char = 'i'  First char = 'i'
# Line 1235  Need char = 's' Line 1228  Need char = 's'
1228   0: iss   0: iss
1229   0+ issippi   0+ issippi
1230    
1231  /\Biss\B/+P  /\Biss\B/I+P
1232      Mississippi      Mississippi
1233   0: iss   0: iss
1234   0+ issippi   0+ issippi
1235    
1236  /iss/G+  /iss/IG+
1237  Capturing subpattern count = 0  Capturing subpattern count = 0
1238  No options  No options
1239  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1244  Need char = 's'
1244   0: iss   0: iss
1245   0+ ippi   0+ ippi
1246    
1247  /\Biss\B/G+  /\Biss\B/IG+
1248  Capturing subpattern count = 0  Capturing subpattern count = 0
1249  No options  No options
1250  First char = 'i'  First char = 'i'
# Line 1260  Need char = 's' Line 1253  Need char = 's'
1253   0: iss   0: iss
1254   0+ issippi   0+ issippi
1255    
1256  /\Biss\B/g+  /\Biss\B/Ig+
1257  Capturing subpattern count = 0  Capturing subpattern count = 0
1258  No options  No options
1259  First char = 'i'  First char = 'i'
# Line 1275  No match Line 1268  No match
1268      Mississippi\A      Mississippi\A
1269  No match  No match
1270    
1271  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  No options  No options
1274  First char = 'i'  First char = 'i'
# Line 1286  Need char = 's' Line 1279  Need char = 's'
1279   0: iss   0: iss
1280   0+ ippi   0+ ippi
1281    
1282  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1283  Capturing subpattern count = 0  Capturing subpattern count = 0
1284  No options  No options
1285  First char = 'i'  First char = 'i'
# Line 1295  Need char = 's' Line 1288  Need char = 's'
1288   0: iss   0: iss
1289   0+ issippi   0+ issippi
1290    
1291  /^iss/g+  /^iss/Ig+
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  Options: anchored  Options: anchored
1294  No first char  No first char
# Line 1303  No need char Line 1296  No need char
1296      ississippi      ississippi
1297   0: iss   0: iss
1298   0+ issippi   0+ issippi
1299    
1300  /.*iss/g+  /.*iss/Ig+
1301  Capturing subpattern count = 0  Capturing subpattern count = 0
1302  Partial matching not supported  Partial matching not supported
1303  No options  No options
1304  First char at start or follows \n  First char at start or follows newline
1305  Need char = 's'  Need char = 's'
1306      abciss\nxyzisspqr      abciss\nxyzisspqr
1307   0: abciss   0: abciss
1308   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1309   0: xyziss   0: xyziss
1310   0+ pqr   0+ pqr
1311    
1312  /.i./+g  /.i./I+g
1313  Capturing subpattern count = 0  Capturing subpattern count = 0
1314  No options  No options
1315  No first char  No first char
# Line 1342  Need char = 'i' Line 1335  Need char = 'i'
1335   0+ river   0+ river
1336   0: riv   0: riv
1337   0+ er   0+ er
1338      Missouri river\A      Missouri river\A
1339   0: Mis   0: Mis
1340   0+ souri river   0+ souri river
1341    
1342  /^.is/+g  /^.is/I+g
1343  Capturing subpattern count = 0  Capturing subpattern count = 0
1344  Options: anchored  Options: anchored
1345  No first char  No first char
# Line 1355  No need char Line 1348  No need char
1348   0: Mis   0: Mis
1349   0+ sissippi   0+ sissippi
1350    
1351  /^ab\n/g+  /^ab\n/Ig+
1352  Capturing subpattern count = 0  Capturing subpattern count = 0
1353    Contains explicit CR or LF match
1354  Options: anchored  Options: anchored
1355  No first char  No first char
1356  No need char  No need char
# Line 1364  No need char Line 1358  No need char
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
1360    
1361  /^ab\n/mg+  /^ab\n/Img+
1362  Capturing subpattern count = 0  Capturing subpattern count = 0
1363    Contains explicit CR or LF match
1364  Options: multiline  Options: multiline
1365  First char at start or follows \n  First char at start or follows newline
1366  Need char = 10  Need char = 10
1367      ab\nab\ncd      ab\nab\ncd
1368   0: ab\x0a   0: ab\x0a
# Line 1375  Need char = 10 Line 1370  Need char = 10
1370   0: ab\x0a   0: ab\x0a
1371   0+ cd   0+ cd
1372    
1373  /abc/  /abc/I
1374  Capturing subpattern count = 0  Capturing subpattern count = 0
1375  No options  No options
1376  First char = 'a'  First char = 'a'
1377  Need char = 'c'  Need char = 'c'
1378    
1379  /abc|bac/  /abc|bac/I
1380  Capturing subpattern count = 0  Capturing subpattern count = 0
1381  No options  No options
1382  No first char  No first char
1383  Need char = 'c'  Need char = 'c'
1384    
1385  /(abc|bac)/  /(abc|bac)/I
1386  Capturing subpattern count = 1  Capturing subpattern count = 1
1387  No options  No options
1388  No first char  No first char
1389  Need char = 'c'  Need char = 'c'
1390    
1391  /(abc|(c|dc))/  /(abc|(c|dc))/I
1392  Capturing subpattern count = 2  Capturing subpattern count = 2
1393  No options  No options
1394  No first char  No first char
1395  Need char = 'c'  Need char = 'c'
1396    
1397  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1398  Capturing subpattern count = 2  Capturing subpattern count = 2
1399  No options  No options
1400  No first char  No first char
1401  Need char = 'c'  Need char = 'c'
1402    
1403  /a*/  /a*/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405  Partial matching not supported  Partial matching not supported
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
1409    
1410  /a+/  /a+/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
1412  Partial matching not supported  Partial matching not supported
1413  No options  No options
1414  First char = 'a'  First char = 'a'
1415  No need char  No need char
1416    
1417  /(baa|a+)/  /(baa|a+)/I
1418  Capturing subpattern count = 1  Capturing subpattern count = 1
1419  Partial matching not supported  Partial matching not supported
1420  No options  No options
1421  No first char  No first char
1422  Need char = 'a'  Need char = 'a'
1423    
1424  /a{0,3}/  /a{0,3}/I
1425  Capturing subpattern count = 0  Capturing subpattern count = 0
1426  Partial matching not supported  Partial matching not supported
1427  No options  No options
1428  No first char  No first char
1429  No need char  No need char
1430    
1431  /baa{3,}/  /baa{3,}/I
1432  Capturing subpattern count = 0  Capturing subpattern count = 0
1433  Partial matching not supported  Partial matching not supported
1434  No options  No options
1435  First char = 'b'  First char = 'b'
1436  Need char = 'a'  Need char = 'a'
1437    
1438  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1439  Capturing subpattern count = 1  Capturing subpattern count = 1
1440  Partial matching not supported  Partial matching not supported
1441  No options  No options
1442  First char = '"'  First char = '"'
1443  Need char = '"'  Need char = '"'
1444    
1445  /(abc|ab[cd])/  /(abc|ab[cd])/I
1446  Capturing subpattern count = 1  Capturing subpattern count = 1
1447  No options  No options
1448  First char = 'a'  First char = 'a'
1449  No need char  No need char
1450    
1451  /(a|.)/  /(a|.)/I
1452  Capturing subpattern count = 1  Capturing subpattern count = 1
1453  No options  No options
1454  No first char  No first char
1455  No need char  No need char
1456    
1457  /a|ba|\w/  /a|ba|\w/I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  No first char  No first char
1461  No need char  No need char
1462    
1463  /abc(?=pqr)/  /abc(?=pqr)/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'r'  Need char = 'r'
1468    
1469  /...(?<=abc)/  /...(?<=abc)/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
1471  No options  No options
1472  No first char  No first char
1473  No need char  No need char
1474    
1475  /abc(?!pqr)/  /abc(?!pqr)/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'c'  Need char = 'c'
1480    
1481  /ab./  /ab./I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  Need char = 'b'  Need char = 'b'
1486    
1487  /ab[xyz]/  /ab[xyz]/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
1489  No options  No options
1490  First char = 'a'  First char = 'a'
1491  Need char = 'b'  Need char = 'b'
1492    
1493  /abc*/  /abc*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
1495  Partial matching not supported  Partial matching not supported
1496  No options  No options
1497  First char = 'a'  First char = 'a'
1498  Need char = 'b'  Need char = 'b'
1499    
1500  /ab.c*/  /ab.c*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
1502  Partial matching not supported  Partial matching not supported
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /a.c*/  /a.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509  Partial matching not supported  Partial matching not supported
1510  No options  No options
1511  First char = 'a'  First char = 'a'
1512  No need char  No need char
1513    
1514  /.c*/  /.c*/I
1515  Capturing subpattern count = 0  Capturing subpattern count = 0
1516  Partial matching not supported  Partial matching not supported
1517  No options  No options
1518  No first char  No first char
1519  No need char  No need char
1520    
1521  /ac*/  /ac*/I
1522  Capturing subpattern count = 0  Capturing subpattern count = 0
1523  Partial matching not supported  Partial matching not supported
1524  No options  No options
1525  First char = 'a'  First char = 'a'
1526  No need char  No need char
1527    
1528  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1529  Capturing subpattern count = 1  Capturing subpattern count = 1
1530  Partial matching not supported  Partial matching not supported
1531  No options  No options
1532  No first char  No first char
1533  No need char  No need char
1534    
1535  /a.c*|aba/  /a.c*|aba/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
1537  Partial matching not supported  Partial matching not supported
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  No need char  No need char
1541    
1542  /.+a/  /.+a/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
1544  Partial matching not supported  Partial matching not supported
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
1551  Partial matching not supported  Partial matching not supported
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  Need char = 'a'  Need char = 'a'
1555    
1556  /(?=a)a.*/  /(?=a)a.*/I
1557  Capturing subpattern count = 0  Capturing subpattern count = 0
1558  Partial matching not supported  Partial matching not supported
1559  No options  No options
1560  First char = 'a'  First char = 'a'
1561  No need char  No need char
1562    
1563  /a(b)*/  /a(b)*/I
1564  Capturing subpattern count = 1  Capturing subpattern count = 1
1565  No options  No options
1566  First char = 'a'  First char = 'a'
1567  No need char  No need char
1568    
1569  /a\d*/  /a\d*/I
1570  Capturing subpattern count = 0  Capturing subpattern count = 0
1571  Partial matching not supported  Partial matching not supported
1572  No options  No options
1573  First char = 'a'  First char = 'a'
1574  No need char  No need char
1575    
1576  /ab\d*/  /ab\d*/I
1577  Capturing subpattern count = 0  Capturing subpattern count = 0
1578  Partial matching not supported  Partial matching not supported
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'b'  Need char = 'b'
1582    
1583  /a(\d)*/  /a(\d)*/I
1584  Capturing subpattern count = 1  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
1588    
1589  /abcde{0,0}/  /abcde{0,0}/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 0
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'd'  Need char = 'd'
1594    
1595  /ab\d+/  /ab\d+/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597  Partial matching not supported  Partial matching not supported
1598  No options  No options
1599  First char = 'a'  First char = 'a'
1600  Need char = 'b'  Need char = 'b'
1601    
1602  /a(?(1)b)/  /a(?(1)b)/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  First char = 'a'  First char = 'a'
1606  No need char  No need char
1607    
1608  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1609  Capturing subpattern count = 0  Capturing subpattern count = 0
1610  No options  No options
1611  First char = 'a'  First char = 'a'
1612  Need char = 'g'  Need char = 'g'
1613    
1614  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1615  Capturing subpattern count = 0  Capturing subpattern count = 0
1616  No options  No options
1617  First char = 'a'  First char = 'a'
1618  No need char  No need char
1619    
1620  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622  No options  No options
1623  First char = 'a'  First char = 'a'
1624  Need char = 'g'  Need char = 'g'
1625    
1626  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1627  Capturing subpattern count = 0  Capturing subpattern count = 0
1628  No options  No options
1629  First char = 'a'  First char = 'a'
1630  Need char = 'b'  Need char = 'b'
1631    
1632  /ab\d{0}e/  /ab\d{0}e/I
1633  Capturing subpattern count = 0  Capturing subpattern count = 0
1634  No options  No options
1635  First char = 'a'  First char = 'a'
1636  Need char = 'e'  Need char = 'e'
1637    
1638  /a?b?/  /a?b?/I
1639  Capturing subpattern count = 0  Capturing subpattern count = 0
1640  No options  No options
1641  No first char  No first char
# Line 1655  No need char Line 1650  No need char
1650   0:   0:
1651      *** Failers      *** Failers
1652   0:   0:
1653      \N      \N
1654  No match  No match
1655    
1656  /|-/  /|-/I
1657  Capturing subpattern count = 0  Capturing subpattern count = 0
1658  No options  No options
1659  No first char  No first char
# Line 1671  No need char Line 1666  No need char
1666   0: -   0: -
1667      *** Failers      *** Failers
1668   0:   0:
1669      \Nabc      \Nabc
1670  No match  No match
1671    
1672  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1673      aaaabbbbzzzz      aaaabbbbzzzz
1674   0: aaaabbbbzz   0: aaaabbbbzz
1675   1: bbbb   1: bbbb
# Line 1700  No match Line 1695  No match
1695   1: bbbb   1: bbbb
1696   2: z   2: z
1697   3: z   3: z
1698    
1699  /^.?abcd/S  /^.?abcd/IS
1700  Capturing subpattern count = 0  Capturing subpattern count = 0
1701  Options: anchored  Options: anchored
1702  No first char  No first char
# Line 1715  Study returned NULL Line 1710  Study returned NULL
1710    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1711    )*            # Zero or more contents    )*            # Zero or more contents
1712    \)            # Closing )    \)            # Closing )
1713    /x    /Ix
1714  Capturing subpattern count = 0  Capturing subpattern count = 0
1715  Partial matching not supported  Partial matching not supported
1716  Options: extended  Options: extended
# Line 1727  Need char = ')' Line 1722  Need char = ')'
1722   0: (abcd)   0: (abcd)
1723      xyz(abcd)      xyz(abcd)
1724   0: (abcd)   0: (abcd)
1725      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1726   0: (ab(xy)cd)   0: (ab(xy)cd)
1727      (ab(xycd)pqr      (ab(xycd)pqr
1728   0: (xycd)   0: (xycd)
1729      () abc ()      () abc ()
1730   0: ()   0: ()
1731      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1732   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1733      *** Failers      *** Failers
1734  No match  No match
1735      abcd      abcd
1736  No match  No match
1737      abcd)      abcd)
1738  No match  No match
1739      (abcd      (abcd
1740  No match  No match
1741    
1742  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1743  Capturing subpattern count = 1  Capturing subpattern count = 1
1744  Partial matching not supported  Partial matching not supported
1745  Options: extended  Options: extended
1746  First char = '('  First char = '('
1747  Need char = ')'  Need char = ')'
1748      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1749   0: (ab(xy)cd)   0: (ab(xy)cd)
1750   1: cd   1: cd
1751      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1754  Need char = ')'
1754   0: (x(y)z)   0: (x(y)z)
1755   1: z   1: z
1756    
1757  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1758  Capturing subpattern count = 0  Capturing subpattern count = 0
1759  Partial matching not supported  Partial matching not supported
1760  Options: extended  Options: extended
# Line 1769  Need char = ')' Line 1764  Need char = ')'
1764   0: (abcd)   0: (abcd)
1765      (ab(xy)cd)      (ab(xy)cd)
1766   0: (xy)   0: (xy)
1767      (a(b(c)d)e)      (a(b(c)d)e)
1768   0: (c)   0: (c)
1769      ((ab))      ((ab))
1770   0: ((ab))   0: ((ab))
1771      *** Failers      *** Failers
1772  No match  No match
1773      ()      ()
1774  No match  No match
1775    
1776  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1777  Capturing subpattern count = 0  Capturing subpattern count = 0
1778  Partial matching not supported  Partial matching not supported
1779  Options: extended  Options: extended
# Line 1789  Need char = ')' Line 1784  Need char = ')'
1784      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1785   0: (fsh)   0: (fsh)
1786    
1787  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1788  Capturing subpattern count = 1  Capturing subpattern count = 1
1789  Partial matching not supported  Partial matching not supported
1790  Options: extended  Options: extended
# Line 1799  Need char = ')' Line 1794  Need char = ')'
1794   0: (ab(xy)cd)   0: (ab(xy)cd)
1795   1: cd   1: cd
1796    
1797  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1798  Capturing subpattern count = 2  Capturing subpattern count = 2
1799  Partial matching not supported  Partial matching not supported
1800  Options: extended  Options: extended
# Line 1810  Need char = ')' Line 1805  Need char = ')'
1805   1: ab(xy)cd   1: ab(xy)cd
1806   2: cd   2: cd
1807    
1808  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1809  Capturing subpattern count = 3  Capturing subpattern count = 3
1810  Partial matching not supported  Partial matching not supported
1811  Options: extended  Options: extended
# Line 1827  Need char = ')' Line 1822  Need char = ')'
1822   2: ab(xy)cd   2: ab(xy)cd
1823   3: cd   3: cd
1824    
1825  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1826  Capturing subpattern count = 3  Capturing subpattern count = 3
1827  Partial matching not supported  Partial matching not supported
1828  Options: extended  Options: extended
# Line 1844  Need char = ')' Line 1839  Need char = ')'
1839   2: 123   2: 123
1840   3: cd   3: cd
1841    
1842  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1843  Capturing subpattern count = 11  Capturing subpattern count = 11
1844  Partial matching not supported  Partial matching not supported
1845  Options: extended  Options: extended
# Line 1864  Need char = ')' Line 1859  Need char = ')'
1859  10: ab(xy)cd  10: ab(xy)cd
1860  11: cd  11: cd
1861    
1862  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1863  Capturing subpattern count = 3  Capturing subpattern count = 3
1864  Partial matching not supported  Partial matching not supported
1865  Options: extended  Options: extended
# Line 1876  Need char = ')' Line 1871  Need char = ')'
1871   2: 123   2: 123
1872   3: <unset>   3: <unset>
1873    
1874  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1875  Capturing subpattern count = 3  Capturing subpattern count = 3
1876  Partial matching not supported  Partial matching not supported
1877  Options: extended  Options: extended
# Line 1893  Need char = ')' Line 1888  Need char = ')'
1888   2: ij   2: ij
1889   3: (cd(ef)gh)   3: (cd(ef)gh)
1890    
1891  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1892    ------------------------------------------------------------------
1893            Bra
1894            ^
1895            [0-9A-Za-z]
1896            Ket
1897            End
1898    ------------------------------------------------------------------
1899    Capturing subpattern count = 0
1900    Options: anchored
1901    No first char
1902    No need char
1903    
1904    /^[[:^alnum:]]/DZ
1905  ------------------------------------------------------------------  ------------------------------------------------------------------
1906    0  37 Bra 0          Bra
1907    3     ^          ^
1908    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff]
1909   37  37 Ket          Ket
1910   40     End          End
1911  ------------------------------------------------------------------  ------------------------------------------------------------------
1912  Capturing subpattern count = 0  Capturing subpattern count = 0
1913  Options: anchored  Options: anchored
1914  No first char  No first char
1915  No need char  No need char
1916    
1917  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1918  ------------------------------------------------------------------  ------------------------------------------------------------------
1919    0  37 Bra 0          Bra
1920    3     ^          ^
1921    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1922   37  37 Ket          Ket
1923   40     End          End
1924  ------------------------------------------------------------------  ------------------------------------------------------------------
1925  Capturing subpattern count = 0  Capturing subpattern count = 0
1926  Options: anchored  Options: anchored
1927  No first char  No first char
1928  No need char  No need char
1929    
1930  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1931  ------------------------------------------------------------------  ------------------------------------------------------------------
1932    0  37 Bra 0          Bra
1933    3     ^          ^
1934    4     [A-Za-z]          [\x00-@[-`{-\xff]
1935   37  37 Ket          Ket
1936   40     End          End
1937  ------------------------------------------------------------------  ------------------------------------------------------------------
1938  Capturing subpattern count = 0  Capturing subpattern count = 0
1939  Options: anchored  Options: anchored
1940  No first char  No first char
1941  No need char  No need char
1942    
1943  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1944    Capturing subpattern count = 0
1945    No options
1946    No first char
1947    No need char
1948    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
1949      _ 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
1950    
1951    /^[[:ascii:]]/DZ
1952  ------------------------------------------------------------------  ------------------------------------------------------------------
1953    0  37 Bra 0          Bra
1954    3     ^          ^
1955    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1956   37  37 Ket          Ket
1957   40     End          End
1958  ------------------------------------------------------------------  ------------------------------------------------------------------
1959  Capturing subpattern count = 0  Capturing subpattern count = 0
1960  Options: anchored  Options: anchored
1961  No first char  No first char
1962  No need char  No need char
1963    
1964  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1965  ------------------------------------------------------------------  ------------------------------------------------------------------
1966    0  37 Bra 0          Bra
1967    3     ^          ^
1968    4     [\x00-\x7f]          [\x80-\xff]
1969   37  37 Ket          Ket
1970   40     End          End
1971  ------------------------------------------------------------------  ------------------------------------------------------------------
1972  Capturing subpattern count = 0  Capturing subpattern count = 0
1973  Options: anchored  Options: anchored
1974  No first char  No first char
1975  No need char  No need char
1976    
1977  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979    0  37 Bra 0          Bra
1980    3     ^          ^
1981    4     [\x80-\xff]          [\x09 ]
1982   37  37 Ket          Ket
1983   40     End          End
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985  Capturing subpattern count = 0  Capturing subpattern count = 0
1986  Options: anchored  Options: anchored
1987  No first char  No first char
1988  No need char  No need char
1989    
1990  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1991  ------------------------------------------------------------------  ------------------------------------------------------------------
1992    0  37 Bra 0          Bra
1993    3     ^          ^
1994    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff]
1995   37  37 Ket          Ket
1996   40     End          End
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998  Capturing subpattern count = 0  Capturing subpattern count = 0
1999  Options: anchored  Options: anchored
2000  No first char  No first char
2001  No need char  No need char
2002    
2003  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2004    Capturing subpattern count = 0
2005    Contains explicit CR or LF match
2006    No options
2007    No first char
2008    No need char
2009    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2010    
2011    /^[[:cntrl:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [0-9]          [0-9]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [!-~]          [!-~]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [a-z]          [a-z]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:print:]]/D  /^[[:print:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [ -~]          [ -~]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[[:space:]]/D  /^[[:space:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [\x09-\x0d ]          [\x09-\x0d ]
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [A-Z]          [A-Z]
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  37 Bra 0          Bra
2118    3     ^          ^
2119    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2120   37  37 Ket          Ket
2121   40     End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
2124  Options: anchored  Options: anchored
2125  No first char  No first char
2126  No need char  No need char
2127    
2128  /^[[:word:]]/D  /^[[:word:]]/DZ
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130    0  37 Bra 0          Bra
2131    3     ^          ^
2132    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2133   37  37 Ket          Ket
2134   40     End          End
2135  ------------------------------------------------------------------  ------------------------------------------------------------------
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
2137  Options: anchored  Options: anchored
2138  No first char  No first char
2139  No need char  No need char
2140    
2141  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143    0  37 Bra 0          Bra
2144    3     ^          ^
2145    4     [ -~\x80-\xff]          [ -~\x80-\xff]
2146   37  37 Ket          Ket
2147   40     End          End
2148  ------------------------------------------------------------------  ------------------------------------------------------------------
2149  Capturing subpattern count = 0  Capturing subpattern count = 0
2150  Options: anchored  Options: anchored
2151  No first char  No first char
2152  No need char  No need char
2153    
2154  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2155  ------------------------------------------------------------------  ------------------------------------------------------------------
2156    0  37 Bra 0          Bra
2157    3     ^          ^
2158    4     [\x00-/12:-\xff]          [\x00-/12:-\xff]
2159   37  37 Ket          Ket
2160   40     End          End
2161  ------------------------------------------------------------------  ------------------------------------------------------------------
2162  Capturing subpattern count = 0  Capturing subpattern count = 0
2163  Options: anchored  Options: anchored
2164  No first char  No first char
2165  No need char  No need char
2166    
2167  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2168  ------------------------------------------------------------------  ------------------------------------------------------------------
2169    0  37 Bra 0          Bra
2170    3     ^          ^
2171    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff]
2172   37  37 Ket          Ket
2173   40     End          End
2174  ------------------------------------------------------------------  ------------------------------------------------------------------
2175  Capturing subpattern count = 0  Capturing subpattern count = 0
2176  Options: anchored  Options: anchored
2177  No first char  No first char
2178  No need char  No need char
2179    
2180  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2181  ------------------------------------------------------------------  ------------------------------------------------------------------
2182    0  36 Bra 0          Bra
2183    3     [%01A-Za-z]          [%01A-Za-z]
2184   36  36 Ket          Ket
2185   39     End          End
2186  ------------------------------------------------------------------  ------------------------------------------------------------------
2187  Capturing subpattern count = 0  Capturing subpattern count = 0
2188  No options  No options
2189  No first char  No first char
2190  No need char  No need char
2191    
2192  /[[.ch.]]/  /[[.ch.]]/I
2193  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2194    
2195  /[[=ch=]]/  /[[=ch=]]/I
2196  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2197    
2198  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2199  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2200    
2201  /[[:upper:]]/i  /[[:upper:]]/Ii
2202  Capturing subpattern count = 0  Capturing subpattern count = 0
2203  Options: caseless  Options: caseless
2204  No first char  No first char
2205  No need char  No need char
2206      A      A
2207   0: A   0: A
2208      a      a
2209   0: a   0: a
2210    
2211  /[[:lower:]]/i  /[[:lower:]]/Ii
2212  Capturing subpattern count = 0  Capturing subpattern count = 0
2213  Options: caseless  Options: caseless
2214  No first char  No first char
2215  No need char  No need char
2216      A      A
2217   0: A   0: A
2218      a      a
2219   0: a   0: a
2220    
2221  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2222  Capturing subpattern count = 1  Capturing subpattern count = 1
2223  Options: caseless  Options: caseless
 Case state changes  
2224  No first char  No first char
2225  No need char  No need char
2226      ab      ab
# Line 2211  No need char Line 2234  No need char
2234   1: a   1: a
2235      Ab      Ab
2236  No match  No match
2237      AB      AB
2238  No match  No match
2239    
2240  /[\200-\410]/  /[\200-\110]/I
2241  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2242    
2243  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2244  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2245    
2246  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2247  Capturing subpattern count = 0  Capturing subpattern count = 0
2248  No options  No options
2249  First char = 'T'  First char = 'T'
2250  Need char = 'd'  Need char = 'd'
2251    
2252  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2253  Capturing subpattern count = 271  Capturing subpattern count = 271
2254  Max back reference = 270  Max back reference = 270
2255  Partial matching not supported  Partial matching not supported
# Line 2507  No need char Line 2530  No need char
2530  270: ABC  270: ABC
2531  271: ABC  271: ABC
2532    
2533  /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
2534  Capturing subpattern count = 0  Capturing subpattern count = 0
2535  No options  No options
2536  First char = 'T'  First char = 'T'
2537  Need char = 't'  Need char = 't'
2538    
2539  /(main(O)?)+/  /(main(O)?)+/I
2540  Capturing subpattern count = 2  Capturing subpattern count = 2
2541  No options  No options
2542  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2548  Need char = 'n'
2548   0: mainOmain   0: mainOmain
2549   1: main   1: main
2550   2: O   2: O
2551    
2552  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2553  Capturing subpattern count = 1  Capturing subpattern count = 1
2554  No options  No options
2555  First char = 'T'  First char = 'T'
2556  Need char = 's'  Need char = 's'
2557    
2558  /^(a(b)?)+$/  /^(a(b)?)+$/I
2559  Capturing subpattern count = 2  Capturing subpattern count = 2
2560  Options: anchored  Options: anchored
2561  No first char  No first char
# Line 2541  No need char Line 2564  No need char
2564   0: aba   0: aba
2565   1: a   1: a
2566   2: b   2: b
2567    
2568  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2569  Capturing subpattern count = 2  Capturing subpattern count = 2
2570  Options: anchored  Options: anchored
2571  No first char  No first char
2572  No need char  No need char
2573      aabbaa      aabbaa
2574   0: aabbaa   0: aabbaa
2575   1: aa   1: aa
2576   2: bb   2: bb
2577    
2578  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2579  Capturing subpattern count = 2  Capturing subpattern count = 2
2580  Options: anchored  Options: anchored
2581  No first char  No first char
2582  No need char  No need char
2583      aabbaa      aabbaa
2584   0: aabbaa   0: aabbaa
2585   1: aa   1: aa
2586   2: bb   2: bb
2587    
2588  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2589  Capturing subpattern count = 2  Capturing subpattern count = 2
2590  Options: anchored  Options: anchored
2591  No first char  No first char
2592  No need char  No need char
2593      aabbaa      aabbaa
2594   0: aabbaa   0: aabbaa
2595   1: aa   1: aa
2596   2: bb   2: bb
2597    
2598  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2599  Capturing subpattern count = 1  Capturing subpattern count = 1
2600  Options: anchored  Options: anchored
2601  No first char  No first char
2602  No need char  No need char
2603      aabbaa      aabbaa
2604   0: aabbaa   0: aabbaa
2605   1: bb   1: bb
2606    
2607  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2608  Capturing subpattern count = 3  Capturing subpattern count = 3
2609  Options: anchored  Options: anchored
2610  No first char  No first char
2611  No need char  No need char
2612      aabbaa      aabbaa
2613   0: aabbaa   0: aabbaa
2614   1: aa   1: aa
2615   2: bb   2: bb
2616   3: b   3: b
2617    
2618  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2619  Capturing subpattern count = 2  Capturing subpattern count = 2
2620  Options: anchored  Options: anchored
2621  No first char  No first char
2622  No need char  No need char
2623      aabbaa      aabbaa
2624   0: aabbaa   0: aabbaa
2625   1: bb   1: bb
2626   2: b   2: b
2627    
2628  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2629  Capturing subpattern count = 1  Capturing subpattern count = 1
2630  Options: anchored  Options: anchored
2631  No first char  No first char
2632  No need char  No need char
2633      aabbaa      aabbaa
2634   0: aabbaa   0: aabbaa
2635   1: bb   1: bb
2636    
2637  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2638  Capturing subpattern count = 1  Capturing subpattern count = 1
2639  Options: anchored  Options: anchored
2640  No first char  No first char
2641  No need char  No need char
2642      aabbbaa      aabbbaa
2643   0: aabbbaa   0: aabbbaa
2644   1: bbb   1: bbb
2645    
2646  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2647  Capturing subpattern count = 1  Capturing subpattern count = 1
2648  Options: anchored  Options: anchored
2649  No first char  No first char
2650  No need char  No need char
2651      aabbbaa      aabbbaa
2652   0: aabbbaa   0: aabbbaa
2653   1: bbb   1: bbb
2654    
2655  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2656  Capturing subpattern count = 1  Capturing subpattern count = 1
2657  Options: anchored  Options: anchored
2658  No first char  No first char
2659  No need char  No need char
2660      aabbaa      aabbaa
2661   0: aabbaa   0: aabbaa
2662   1: b   1: b
2663    
2664  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2665  Capturing subpattern count = 1  Capturing subpattern count = 1
2666  Options: anchored  Options: anchored
2667  No first char  No first char
2668  No need char  No need char
2669      aabbbaa      aabbbaa
2670   0: aabbbaa   0: aabbbaa
2671   1: bb   1: bb
2672    
2673  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2674  Capturing subpattern count = 3  Capturing subpattern count = 3
2675  Options: anchored  Options: anchored
2676  No first char  No first char
2677  No need char  No need char
2678      aabbbaa      aabbbaa
2679   0: aabbbaa   0: aabbbaa
2680   1: aa   1: aa
2681   2: bbb   2: bbb
2682   3: bb   3: bb
2683    
2684  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2685  Capturing subpattern count = 3  Capturing subpattern count = 3
2686  Options: anchored  Options: anchored
2687  No first char  No first char
2688  No need char  No need char
2689      aabbbbaa      aabbbbaa
2690   0: aabbbbaa   0: aabbbbaa
2691   1: aa   1: aa
2692   2: bbbb   2: bbbb
2693   3: bb   3: bb
2694    
2695  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2696  Capturing subpattern count = 0  Capturing subpattern count = 0
2697  No options  No options
2698  First char = '-'  First char = '-'
2699  Need char = '-'  Need char = '-'
2700    
2701  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2702  ------------------------------------------------------------------  ------------------------------------------------------------------
2703    0   3 Bra 0          Bra
2704    3   3 Ket          Ket
2705    6     End          End
2706  ------------------------------------------------------------------  ------------------------------------------------------------------
2707  Capturing subpattern count = 0  Capturing subpattern count = 0
2708  Options: extended  Options: extended
2709  No first char  No first char
2710  No need char  No need char
2711    
2712  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
2714    0   5 Bra 0          Bra
2715    3     a          a
2716    5   5 Ket          Ket
2717    8     End          End
2718  ------------------------------------------------------------------  ------------------------------------------------------------------
2719  Capturing subpattern count = 0  Capturing subpattern count = 0
2720  Options: extended  Options: extended
2721  First char = 'a'  First char = 'a'
2722  No need char  No need char
2723    
2724  /[\s]/D  /[\s]/DZ
2725  ------------------------------------------------------------------  ------------------------------------------------------------------
2726    0  36 Bra 0          Bra
2727    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2728   36  36 Ket          Ket
2729   39     End          End
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731  Capturing subpattern count = 0  Capturing subpattern count = 0
2732  No options  No options
2733  No first char  No first char
2734  No need char  No need char
2735    
2736  /[\S]/D  /[\S]/DZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738    0  36 Bra 0          Bra
2739    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff]
2740   36  36 Ket          Ket
2741   39     End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743  Capturing subpattern count = 0  Capturing subpattern count = 0
2744  No options  No options
2745  No first char  No first char
2746  No need char  No need char
2747    
2748  /a(?i)b/D  /a(?i)b/DZ
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750    0   9 Bra 0          Bra
2751    3     a          a
2752    5  01 Opt       01 Opt
2753    7  NC b       NC b
2754    9   9 Ket          Ket
2755   12     End          End
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757  Capturing subpattern count = 0  Capturing subpattern count = 0
2758  No options  No options
 Case state changes  
2759  First char = 'a'  First char = 'a'
2760  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2761      ab      ab
2762   0: ab   0: ab
2763      aB      aB
2764   0: aB   0: aB
2765      *** Failers      *** Failers
2766  No match  No match
2767      AB      AB
2768  No match  No match
2769    
2770  /(a(?i)b)/D  /(a(?i)b)/DZ
2771  ------------------------------------------------------------------  ------------------------------------------------------------------
2772    0  17 Bra 0          Bra
2773    3   9 Bra 1          CBra 1
2774    6     a          a
2775    8  01 Opt       01 Opt
2776   10  NC b       NC b
2777   12   9 Ket          Ket
2778   15  00 Opt       00 Opt
2779   17  17 Ket          Ket
2780   20     End          End
2781  ------------------------------------------------------------------  ------------------------------------------------------------------
2782  Capturing subpattern count = 1  Capturing subpattern count = 1
2783  No options  No options
 Case state changes  
2784  First char = 'a'  First char = 'a'
2785  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2786      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2789  Need char = 'b' (caseless)
2789      aB      aB
2790   0: aB   0: aB
2791   1: aB   1: aB
2792      *** Failers      *** Failers
2793  No match  No match
2794      AB      AB
2795  No match  No match
2796    
2797  /   (?i)abc/xD  /   (?i)abc/IxDZ
2798  ------------------------------------------------------------------  ------------------------------------------------------------------
2799    0   9 Bra 0          Bra
2800    3  NC abc       NC abc
2801    9   9 Ket          Ket
2802   12     End          End
2803  ------------------------------------------------------------------  ------------------------------------------------------------------
2804  Capturing subpattern count = 0  Capturing subpattern count = 0
2805  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2807  First char = 'a' (caseless)
2807  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2808    
2809  /#this is a comment  /#this is a comment
2810    (?i)abc/xD    (?i)abc/IxDZ
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812    0   9 Bra 0          Bra
2813    3  NC abc       NC abc
2814    9   9 Ket          Ket
2815   12     End          End
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817  Capturing subpattern count = 0  Capturing subpattern count = 0
2818  Options: caseless extended  Options: caseless extended
2819  First char = 'a' (caseless)  First char = 'a' (caseless)
2820  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2821    
2822  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824    0 603 Bra 0          Bra
2825    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2826  603 603 Ket          Ket
2827  606     End          End
2828  ------------------------------------------------------------------  ------------------------------------------------------------------
2829  Capturing subpattern count = 0  Capturing subpattern count = 0
2830  No options  No options
2831  First char = '1'  First char = '1'
2832  Need char = '0'  Need char = '0'
2833    
2834  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2835  ------------------------------------------------------------------  ------------------------------------------------------------------
2836    0 603 Bra 0          Bra
2837    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2838  603 603 Ket          Ket
2839  606     End          End
2840  ------------------------------------------------------------------  ------------------------------------------------------------------
2841  Capturing subpattern count = 0  Capturing subpattern count = 0
2842  No options  No options
2843  First char = '1'  First char = '1'
2844  Need char = '0'  Need char = '0'
2845    
2846  /\Q\E/D  /\Q\E/DZ
2847  ------------------------------------------------------------------  ------------------------------------------------------------------
2848    0   3 Bra 0          Bra
2849    3   3 Ket          Ket
2850    6     End          End
2851  ------------------------------------------------------------------  ------------------------------------------------------------------
2852  Capturing subpattern count = 0  Capturing subpattern count = 0
2853  No options  No options
# Line 2837  No need char Line 2856  No need char
2856      \      \
2857   0:   0:
2858    
2859  /\Q\Ex/D  /\Q\Ex/DZ
2860  ------------------------------------------------------------------  ------------------------------------------------------------------
2861    0   5 Bra 0          Bra
2862    3     x          x
2863    5   5 Ket          Ket
2864    8     End          End
2865  ------------------------------------------------------------------  ------------------------------------------------------------------
2866  Capturing subpattern count = 0  Capturing subpattern count = 0
2867  No options  No options
2868  First char = 'x'  First char = 'x'
2869  No need char  No need char
2870    
2871  / \Q\E/D  / \Q\E/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0   5 Bra 0          Bra
2874    3  
2875    5   5 Ket          Ket
2876    8     End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879  No options  No options
2880  First char = ' '  First char = ' '
2881  No need char  No need char
2882    
2883  /a\Q\E/D  /a\Q\E/DZ
2884  ------------------------------------------------------------------  ------------------------------------------------------------------
2885    0   5 Bra 0          Bra
2886    3     a          a
2887    5   5 Ket          Ket
2888    8     End          End
2889  ------------------------------------------------------------------  ------------------------------------------------------------------
2890  Capturing subpattern count = 0  Capturing subpattern count = 0
2891  No options  No options
# Line 2876  No need char Line 2895  No need char
2895   0: a   0: a
2896    bca    bca
2897   0: a   0: a
2898    bac    bac
2899   0: a   0: a
2900    
2901  /a\Q\Eb/D  /a\Q\Eb/DZ
2902  ------------------------------------------------------------------  ------------------------------------------------------------------
2903    0   7 Bra 0          Bra
2904    3     ab          ab
2905    7   7 Ket          Ket
2906   10     End          End
2907  ------------------------------------------------------------------  ------------------------------------------------------------------
2908  Capturing subpattern count = 0  Capturing subpattern count = 0
2909  No options  No options
# Line 2893  Need char = 'b' Line 2912  Need char = 'b'
2912    abc    abc
2913   0: ab   0: ab
2914    
2915  /\Q\Eabc/D  /\Q\Eabc/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917    0   9 Bra 0          Bra
2918    3     abc          abc
2919    9   9 Ket          Ket
2920   12     End          End
2921  ------------------------------------------------------------------  ------------------------------------------------------------------
2922  Capturing subpattern count = 0  Capturing subpattern count = 0
2923  No options  No options
2924  First char = 'a'  First char = 'a'
2925  Need char = 'c'  Need char = 'c'
2926    
2927  /x*+\w/D  /x*+\w/DZ
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929    0  12 Bra 0          Bra
2930    3   5 Once          x*+
2931    6     x*          \w
2932    8   5 Ket          Ket
2933   11     \w          End
  12  12 Ket  
  15     End  
2934  ------------------------------------------------------------------  ------------------------------------------------------------------
2935  Capturing subpattern count = 0  Capturing subpattern count = 0
2936  Partial matching not supported  Partial matching not supported
# Line 2924  No need char Line 2941  No need char
2941   0: F   0: F
2942      xxxxx      xxxxx
2943  No match  No match
2944    
2945  /x?+/D  /x?+/DZ
2946  ------------------------------------------------------------------  ------------------------------------------------------------------
2947    0  11 Bra 0          Bra
2948    3   5 Once          x?+
2949    6     x?          Ket
2950    8   5 Ket          End
  11  11 Ket  
  14     End  
2951  ------------------------------------------------------------------  ------------------------------------------------------------------
2952  Capturing subpattern count = 0  Capturing subpattern count = 0
2953  No options  No options
2954  No first char  No first char
2955  No need char  No need char
2956    
2957  /x++/D  /x++/DZ
2958  ------------------------------------------------------------------  ------------------------------------------------------------------
2959    0  11 Bra 0          Bra
2960    3   5 Once          x++
2961    6     x+          Ket
2962    8   5 Ket          End
  11  11 Ket  
  14     End  
2963  ------------------------------------------------------------------  ------------------------------------------------------------------
2964  Capturing subpattern count = 0  Capturing subpattern count = 0
2965  Partial matching not supported  Partial matching not supported
# Line 2954  No options Line 2967  No options
2967  First char = 'x'  First char = 'x'
2968  No need char  No need char
2969    
2970  /x{1,3}+/D  /x{1,3}+/DZ
2971  ------------------------------------------------------------------  ------------------------------------------------------------------
2972    0  15 Bra 0          Bra
2973    3   9 Once          Once
2974    6     x          x
2975    8     x{,2}          x{0,2}
2976   12   9 Ket          Ket
2977   15  15 Ket          Ket
2978   18     End          End
2979  ------------------------------------------------------------------  ------------------------------------------------------------------
2980  Capturing subpattern count = 0  Capturing subpattern count = 0
2981  Partial matching not supported  Partial matching not supported
# Line 2970  No options Line 2983  No options
2983  First char = 'x'  First char = 'x'
2984  No need char  No need char
2985    
2986  /(x)*+/D  /(x)*+/DZ
2987  ------------------------------------------------------------------  ------------------------------------------------------------------
2988    0  18 Bra 0          Bra
2989    3  12 Once          Once
2990    6     Brazero          Brazero
2991    7   5 Bra 1          CBra 1
2992   10     x          x
2993   12   5 KetRmax          KetRmax
2994   15  12 Ket          Ket
2995   18  18 Ket          Ket
2996   21     End          End
2997  ------------------------------------------------------------------  ------------------------------------------------------------------
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
2999  No options  No options
3000  No first char  No first char
3001  No need char  No need char
3002    
3003  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3004  Capturing subpattern count = 1  Capturing subpattern count = 1
3005  Partial matching not supported  Partial matching not supported
3006  Options: anchored  Options: anchored
# Line 3000  No need char Line 3013  No need char
3013  No match  No match
3014      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3015  No match  No match
3016    
3017  /(\d++)(\w)/  /(\d++)(\w)/I
3018  Capturing subpattern count = 2  Capturing subpattern count = 2
3019  Partial matching not supported  Partial matching not supported
3020  No options  No options
# Line 3013  No need char Line 3026  No need char
3026   2: a   2: a
3027      *** Failers      *** Failers
3028  No match  No match
3029      12345+      12345+
3030  No match  No match
3031    
3032  /a++b/  /a++b/I
3033  Capturing subpattern count = 0  Capturing subpattern count = 0
3034  Partial matching not supported  Partial matching not supported
3035  No options  No options
# Line 3025  Need char = 'b' Line 3038  Need char = 'b'
3038      aaab      aaab
3039   0: aaab   0: aaab
3040    
3041  /(a++b)/  /(a++b)/I
3042  Capturing subpattern count = 1  Capturing subpattern count = 1
3043  Partial matching not supported  Partial matching not supported
3044  No options  No options
# Line 3035  Need char = 'b' Line 3048  Need char = 'b'
3048   0: aaab   0: aaab
3049   1: aaab   1: aaab
3050    
3051  /(a++)b/  /(a++)b/I
3052  Capturing subpattern count = 1  Capturing subpattern count = 1
3053  Partial matching not supported  Partial matching not supported
3054  No options  No options
# Line 3045  Need char = 'b' Line 3058  Need char = 'b'
3058   0: aaab   0: aaab
3059   1: aaa   1: aaa
3060    
3061  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3062  Capturing subpattern count = 1  Capturing subpattern count = 1
3063  Partial matching not supported  Partial matching not supported
3064  No options  No options
# Line 3054  No need char Line 3067  No need char
3067      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3068   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3069   1: x   1: x
3070    
3071  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3072  Capturing subpattern count = 1  Capturing subpattern count = 1
3073  Partial matching not supported  Partial matching not supported
3074  No options  No options
# Line 3069  Need char = ')' Line 3082  Need char = ')'
3082   1: xyz   1: xyz
3083      *** Failers      *** Failers
3084  No match  No match
3085      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3086  No match  No match
3087    
3088  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3089  ------------------------------------------------------------------  ------------------------------------------------------------------
3090    0  53 Bra 0          Bra
3091    3  47 Once          Once
3092    6   9 Bra 1          CBra 1
3093    9     abc          abc
3094   15   9 Ket          Ket
3095   18     Brazero          Brazero
3096   19  28 Bra 0          Bra
3097   22   9 Bra 1          CBra 1
3098   25     abc          abc
3099   31   9 Ket          Ket
3100   34     Brazero          Brazero
3101   35   9 Bra 1          CBra 1
3102   38     abc          abc
3103   44   9 Ket          Ket
3104   47  28 Ket          Ket
3105   50  47 Ket          Ket
3106   53  53 Ket          Ket
3107   56     End          End
3108  ------------------------------------------------------------------  ------------------------------------------------------------------
3109  Capturing subpattern count = 1  Capturing subpattern count = 1
3110  No options  No options
3111  First char = 'a'  First char = 'a'
3112  Need char = 'c'  Need char = 'c'
3113    
3114  /a+?+/  /a+?+/I
3115  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3116    
3117  /a{2,3}?+b/  /a{2,3}?+b/I
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /(?U)a+?+/  /(?U)a+?+/I
3121  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3122    
3123  /a{2,3}?+b/U  /a{2,3}?+b/IU
3124  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3125    
3126  /x(?U)a++b/D  /x(?U)a++b/DZ
3127  ------------------------------------------------------------------  ------------------------------------------------------------------
3128    0  15 Bra 0          Bra
3129    3     x          x
3130    5   5 Once          a++
3131    8     a+          b
3132   10   5 Ket          Ket
3133   13     b          End
  15  15 Ket  
  18     End  
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135  Capturing subpattern count = 0  Capturing subpattern count = 0
3136  Partial matching not supported  Partial matching not supported
# Line 3129  Need char = 'b' Line 3140  Need char = 'b'
3140      xaaaab      xaaaab
3141   0: xaaaab   0: xaaaab
3142    
3143  /(?U)xa++b/D  /(?U)xa++b/DZ
3144  ------------------------------------------------------------------  ------------------------------------------------------------------
3145    0  15 Bra 0          Bra
3146    3     x          x
3147    5   5 Once          a++
3148    8     a+          b
3149   10   5 Ket          Ket
3150   13     b          End
  15  15 Ket  
  18     End  
3151  ------------------------------------------------------------------  ------------------------------------------------------------------
3152  Capturing subpattern count = 0  Capturing subpattern count = 0
3153  Partial matching not supported  Partial matching not supported
# Line 3148  Need char = 'b' Line 3157  Need char = 'b'
3157      xaaaab      xaaaab
3158   0: xaaaab   0: xaaaab
3159    
3160  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3161  ------------------------------------------------------------------  ------------------------------------------------------------------
3162    0 106 Bra 0          Bra
3163    3     ^          ^
3164    4  99 Bra 1          CBra 1
3165    7   5 Bra 2          CBra 2
3166   10     a+          a+
3167   12   5 Ket          Ket
3168   15  37 Bra 3          CBra 3
3169   18     [ab]+?          [ab]+?
3170   52  37 Ket          Ket
3171   55  37 Bra 4          CBra 4
3172   58     [bc]+          [bc]+
3173   92  37 Ket          Ket
3174   95   5 Bra 5          CBra 5
3175   98     \w*          \w*
3176  100   5 Ket          Ket
3177  103  99 Ket          Ket
3178  106 106 Ket          Ket
3179  109     End          End
3180  ------------------------------------------------------------------  ------------------------------------------------------------------
3181  Capturing subpattern count = 5  Capturing subpattern count = 5
3182  Partial matching not supported  Partial matching not supported
# Line 3175  Options: anchored Line 3184  Options: anchored
3184  No first char  No first char
3185  No need char  No need char
3186    
3187  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3188  ------------------------------------------------------------------  ------------------------------------------------------------------
3189    0  10 Bra 0          Bra
3190    3     ^          ^
3191    4     x          x
3192    6     a+?          a++
3193    8     b          b
3194   10  10 Ket          Ket
3195   13     End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
3197  Capturing subpattern count = 0  Capturing subpattern count = 0
3198  Partial matching not supported  Partial matching not supported
# Line 3191  Options: anchored Line 3200  Options: anchored
3200  No first char  No first char
3201  Need char = 'b'  Need char = 'b'
3202    
3203  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3204  ------------------------------------------------------------------  ------------------------------------------------------------------
3205    0  16 Bra 0          Bra
3206    3     ^          ^
3207    4     x          x
3208    6   5 Bra 1          CBra 1
3209    9     a+?          a+?
3210   11   5 Ket          Ket
3211   14     b          b
3212   16  16 Ket          Ket
3213   19     End          End
3214  ------------------------------------------------------------------  ------------------------------------------------------------------
3215  Capturing subpattern count = 1  Capturing subpattern count = 1
3216  Partial matching not supported  Partial matching not supported
# Line 3209  Options: anchored Line 3218  Options: anchored
3218  No first char  No first char
3219  Need char = 'b'  Need char = 'b'
3220    
3221  /[.x.]/  /[.x.]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[=x=]/  /[=x=]/I
3225  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3226    
3227  /[:x:]/  /[:x:]/I
3228  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
3229    
3230  /\l/  /\l/I
3231  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3232    
3233  /\L/  /\L/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  /\N{name}/  /\N{name}/I
3237  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3238    
3239  /\u/  /\u/I
3240  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3241    
3242  /\U/  /\U/I
3243  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
3244    
3245  /[/  /[/I
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3247    
3248  /[a-/  /[a-/I
3249  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3250    
3251  /[[:space:]/  /[[:space:]/I
3252  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3253    
3254  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256    0  36 Bra 0          Bra
3257    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3258   36  36 Ket          Ket
3259   39     End          End
3260  ------------------------------------------------------------------  ------------------------------------------------------------------
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
3262  No options  No options
3263  No first char  No first char
3264  No need char  No need char
3265    
3266  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268    0  36 Bra 0          Bra
3269    3     [\x09-\x0d ]          [\x09-\x0d ]
3270   36  36 Ket          Ket
3271   39     End          End
3272  ------------------------------------------------------------------  ------------------------------------------------------------------
3273  Capturing subpattern count = 0  Capturing subpattern count = 0
3274  No options  No options
3275  No first char  No first char
3276  No need char  No need char
3277    
3278  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3279  ------------------------------------------------------------------  ------------------------------------------------------------------
3280    0  36 Bra 0          Bra
3281    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3282   36  36 Ket          Ket
3283   39     End          End
3284  ------------------------------------------------------------------  ------------------------------------------------------------------
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
3292  Partial matching not supported  Partial matching not supported
3293  Options: extended  Options: extended
# Line 3295  Need char = '>' Line 3301  Need char = '>'
3301   0: <abc <123> hij>   0: <abc <123> hij>
3302      <abc <def> hij>      <abc <def> hij>
3303   0: <def>   0: <def>
3304      <abc<>def>      <abc<>def>
3305   0: <abc<>def>   0: <abc<>def>
3306      <abc<>      <abc<>
3307   0: <>   0: <>
3308      *** Failers      *** Failers
3309  No match  No match
3310      <abc      <abc
3311  No match  No match
3312    
3313  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 826  
3314  ------------------------------------------------------------------  ------------------------------------------------------------------
3315    0 822 Bra 0          Bra
3316    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
3317  821     \b          \b
3318  822 822 Ket          Ket
3319  825     End          End
3320  ------------------------------------------------------------------  ------------------------------------------------------------------
3321  Capturing subpattern count = 0  Capturing subpattern count = 0
3322  No options  No options
3323  First char = '8'  First char = '8'
3324  Need char = 'X'  Need char = 'X'
3325    
3326  |\$\<\.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  
3327  ------------------------------------------------------------------  ------------------------------------------------------------------
3328    0 812 Bra 0          Bra
3329    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
3330  811     \b          \b
3331  812 812 Ket          Ket
3332  815     End          End
3333  ------------------------------------------------------------------  ------------------------------------------------------------------
3334  Capturing subpattern count = 0  Capturing subpattern count = 0
3335  No options  No options
# Line 3344  No need char Line 3348  No need char
3348  Capturing subpattern count = 1  Capturing subpattern count = 1
3349  Partial matching not supported  Partial matching not supported
3350  No options  No options
3351  First char at start or follows \n  First char at start or follows newline
3352  No need char  No need char
3353    
3354  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3355  Capturing subpattern count = 1  Capturing subpattern count = 1
3356  Max back reference = 1  Max back reference = 1
# Line 3367  Capturing subpattern count = 2 Line 3371  Capturing subpattern count = 2
3371  Max back reference = 2  Max back reference = 2
3372  Partial matching not supported  Partial matching not supported
3373  No options  No options
3374  First char at start or follows \n  First char at start or follows newline
3375  Need char = 'z'  Need char = 'z'
3376    
3377  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3381  No need char Line 3385  No need char
3385   0: bc123bc   0: bc123bc
3386   1: bc   1: bc
3387   2: bc   2: bc
3388    
3389  /a[b]/I  /a[b]/I
3390  Capturing subpattern count = 0  Capturing subpattern count = 0
3391  No options  No options
# Line 3395  No options Line 3399  No options
3399  First char = 'a'  First char = 'a'
3400  No need char  No need char
3401    
3402  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3403  Capturing subpattern count = 0  Capturing subpattern count = 0
3404  Options: caseless  Options: caseless
3405  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3408  Need char = 'z' (caseless)
3408  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3409  Capturing subpattern count = 0  Capturing subpattern count = 0
3410  No options  No options
 Case state changes  
3411  First char = 'a'  First char = 'a'
3412  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3413    
# Line 3524  No options Line 3527  No options
3527  First char = 'a'  First char = 'a'
3528  Need char = 'b'  Need char = 'b'
3529    
3530  /^a/mI  /^a/Im
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  Options: multiline  Options: multiline
3533  First char at start or follows \n  First char at start or follows newline
3534  Need char = 'a'  Need char = 'a'
3535    abcde    abcde
3536   0: a   0: a
3537    xy\nabc    xy\nabc
3538   0: a   0: a
3539    *** Failers    *** Failers
3540  No match  No match
3541    xyabc    xyabc
3542  No match  No match
3543    
3544  /c|abc/I  /c|abc/I
# Line 3554  Starting byte set: A B a b Line 3557  Starting byte set: A B a b
3557  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3558  Capturing subpattern count = 0  Capturing subpattern count = 0
3559  No options  No options
 Case state changes  
3560  No first char  No first char
3561  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3562  Starting byte set: a b  Starting byte set: a b
3563    
3564  /abc(?C)def/  /abc(?C)def/I
3565  Capturing subpattern count = 0  Capturing subpattern count = 0
3566  No options  No options
3567  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3570  Need char = 'f'
3570  --->abcdef  --->abcdef
3571    0 ^  ^       d    0 ^  ^       d
3572   0: abcdef   0: abcdef
3573      1234abcdef      1234abcdef
3574  --->1234abcdef  --->1234abcdef
3575    0     ^  ^       d    0     ^  ^       d
3576   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3578  Need char = 'f'
3578  No match  No match
3579      abcxyz      abcxyz
3580  No match  No match
3581      abcxyzf      abcxyzf
3582  --->abcxyzf  --->abcxyzf
3583    0 ^  ^        d    0 ^  ^        d
3584  No match  No match
3585    
3586  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3587  Capturing subpattern count = 0  Capturing subpattern count = 0
3588  No options  No options
3589  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3593  Need char = 'f'
3593    0    ^  ^       d    0    ^  ^       d
3594    1    ^    ^     f    1    ^    ^     f
3595   0: abcdef   0: abcdef
3596    
3597  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3598  Capturing subpattern count = 0  Capturing subpattern count = 0
3599  No options  No options
3600  No first char  No first char
# Line 3607  Need char = 'f' Line 3609  Need char = 'f'
3609   0: 4abcdef   0: 4abcdef
3610      *** Failers      *** Failers
3611  No match  No match
3612      abcdef      abcdef
3613  --->abcdef  --->abcdef
3614    1 ^          \d    1 ^          \d
3615    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3618  No match
3618    1     ^      \d    1     ^      \d
3619    1      ^     \d    1      ^     \d
3620  No match  No match
3621    
3622  /(?C255)ab/  /(?C255)ab/I
3623  Capturing subpattern count = 0  Capturing subpattern count = 0
3624  No options  No options
3625  First char = 'a'  First char = 'a'
3626  Need char = 'b'  Need char = 'b'
3627    
3628  /(?C256)ab/  /(?C256)ab/I
3629  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3630    
3631  /(?Cab)xx/  /(?Cab)xx/I
3632  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3633    
3634  /(?C12vr)x/  /(?C12vr)x/I
3635  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3636    
3637  /abc(?C)def/  /abc(?C)def/I
3638  Capturing subpattern count = 0  Capturing subpattern count = 0
3639  No options  No options
3640  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3646  No match
3646    0         ^  ^       d    0         ^  ^       d
3647   0: abcdef   0: abcdef
3648    
3649  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3650  Capturing subpattern count = 1  Capturing subpattern count = 1
3651  No options  No options
3652  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3657  Need char = 'f'
3657    1    ^    ^     f    1    ^    ^     f
3658   0: abcdef   0: abcdef
3659   1: abc   1: abc
3660      123abcdef\C+      123abcdef\C+
3661  Callout 0: last capture = 1  Callout 0: last capture = 1
3662   0: <unset>   0: <unset>
3663   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3670  Callout 1: last capture = 1
3670         ^    ^     f         ^    ^     f
3671   0: abcdef   0: abcdef
3672   1: abc   1: abc
3673      123abcdef\C-      123abcdef\C-
3674   0: abcdef   0: abcdef
3675   1: abc   1: abc
3676      *** Failers      *** Failers
3677  No match  No match
3678      123abcdef\C!1      123abcdef\C!1
3679  --->123abcdef  --->123abcdef
3680    0    ^  ^       d    0    ^  ^       d
3681    1    ^    ^     f    1    ^    ^     f
3682  No match  No match
3683    
3684  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3685  Capturing subpattern count = 1  Capturing subpattern count = 1
3686  No options  No options
3687  No first char  No first char
# Line 3692  No need char Line 3694  No need char
3694    1 ^        ^    )    1 ^        ^    )
3695   0: abcabcabc   0: abcabcabc
3696   1: abc   1: abc
3697      abcabc\C!1!3      abcabc\C!1!3
3698  --->abcabc  --->abcabc
3699    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3700    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3705  No need char
3705  --->*** Failers  --->*** Failers
3706    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3707   0:   0:
3708      abcabcabc\C!1!3      abcabcabc\C!1!3
3709  --->abcabcabc  --->abcabcabc
3710    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3711    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3714  No need char
3714   0: abcabc   0: abcabc
3715   1: abc   1: abc
3716    
3717  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3718  Capturing subpattern count = 1  Capturing subpattern count = 1
3719  Partial matching not supported  Partial matching not supported
3720  No options  No options
# Line 3737  Callout 0: last capture = 1 Line 3739  Callout 0: last capture = 1
3739      ^     ^    )      ^     ^    )
3740   0: 123456   0: 123456
3741   1: 456   1: 456
3742      123456789\C+      123456789\C+
3743  Callout 0: last capture = -1  Callout 0: last capture = -1
3744   0: <unset>   0: <unset>
3745  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3757  Callout 0: last capture = 1
3757   0: 123456789   0: 123456789
3758   1: 789   1: 789
3759    
3760  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3761  Capturing subpattern count = 2  Capturing subpattern count = 2
3762  No options  No options
3763  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3776  Callout 1: last capture = -1
3776   0: xyzabc   0: xyzabc
3777   1: xyzabc   1: xyzabc
3778    
3779  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3780  Capturing subpattern count = 3  Capturing subpattern count = 3
3781  No options  No options
3782  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3798  Callout 1: last capture = 1
3798   1: X   1: X
3799   2: xyzabc   2: xyzabc
3800    
3801  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3802  Capturing subpattern count = 1  Capturing subpattern count = 1
3803  No options  No options
3804  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3811  Callout 0: last capture = 1
3811      ^          a      ^          a
3812   0: abcdef   0: abcdef
3813   1: abc   1: abc
3814    
3815  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3816  Capturing subpattern count = 1  Capturing subpattern count = 1
3817  No options  No options
3818  First char = 'a'  First char = 'a'
3819  Need char = 'z'  Need char = 'z'
3820      abcxyz\C+      abcxyz\C+
3821  Callout 1: last capture = 1  Callout 1: last capture = 1
3822   0: <unset>   0: <unset>
3823   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3829  Callout 2: last capture = -1
3829      ^          a      ^          a
3830   0: abcxyz   0: abcxyz
3831    
3832  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3833  Capturing subpattern count = 1  Capturing subpattern count = 1
3834  No options  No options
3835  First char = 'x'  First char = 'x'
# Line 3840  Callout 0: last capture = 1 Line 3842  Callout 0: last capture = 1
3842         ^       )         ^       )
3843   0: xyz   0: xyz
3844   1: abc   1: abc
3845    
3846  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3847  Capturing subpattern count = 2  Capturing subpattern count = 2
3848  Partial matching not supported  Partial matching not supported
3849  No options  No options
# Line 3867  Callout data = 1 Line 3869  Callout data = 1
3869  Callout data = 1  Callout data = 1
3870  No match  No match
3871    
3872  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3873  Capturing subpattern count = 2  Capturing subpattern count = 2
3874  Partial matching not supported  Partial matching not supported
3875  No options  No options
# Line 3892  Callout data = 1 Line 3894  Callout data = 1
3894    1 ^        ^    1 ^        ^
3895  Callout data = 1  Callout data = 1
3896  No match  No match
3897    
3898  /(?C)abc/  /(?C)abc/I
3899  Capturing subpattern count = 0  Capturing subpattern count = 0
3900  No options  No options
3901  First char = 'a'  First char = 'a'
3902  Need char = 'c'  Need char = 'c'
3903    
3904  /(?C)^abc/  /(?C)^abc/I
3905  Capturing subpattern count = 0  Capturing subpattern count = 0
3906  Options: anchored  Options: anchored
3907  No first char  No first char
3908  No need char  No need char
3909    
3910  /(?C)a|b/S  /(?C)a|b/IS
3911  Capturing subpattern count = 0  Capturing subpattern count = 0
3912  No options  No options
3913  No first char  No first char
3914  No need char  No need char
3915  Starting byte set: a b  Starting byte set: a b
3916    
3917  /(?R)/  /(?R)/I
3918  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3919    
3920  /(a|(?R))/  /(a|(?R))/I
3921  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3922    
3923  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3924  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3925    
3926  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3927  Capturing subpattern count = 3  Capturing subpattern count = 3
3928  No options  No options
3929  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3952  No need char
3952   3: xxab   3: xxab
3953      *** Failers      *** Failers
3954  No match  No match
3955      xyab      xyab
3956  No match  No match
3957    
3958  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3959  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3960    
3961  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3962  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3963    
3964  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3965  Capturing subpattern count = 1  Capturing subpattern count = 1
3966  Options: anchored  Options: anchored
3967  No first char  No first char
# Line 3970  No need char Line 3972  No need char
3972      a(b)c      a(b)c
3973   0: a(b)c   0: a(b)c
3974   1: c   1: c
3975      a(b(c))d      a(b(c))d
3976   0: a(b(c))d   0: a(b(c))d
3977   1: d   1: d
3978      *** Failers)      *** Failers)
3979  No match  No match
3980      a(b(c)d      a(b(c)d
3981  No match  No match
3982    
3983  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3984  Capturing subpattern count = 1  Capturing subpattern count = 1
3985  Options: anchored  Options: anchored
3986  No first char  No first char
# Line 3993  Need char = '<' Line 3995  Need char = '<'
3995   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3996   1: (1(2)3)   1: (1(2)3)
3997    
3998  /(a(?1)b)/D  /(a(?1)b)/DZ
3999  ------------------------------------------------------------------  ------------------------------------------------------------------
4000    0  16 Bra 0          Bra
4001    3  10 Bra 1          CBra 1
4002    6     a          a
4003    8   3 Recurse          Once
4004   11     b          Recurse
4005   13  10 Ket          Ket
4006   16  16 Ket          b
4007   19     End          Ket
4008            Ket
4009            End
4010  ------------------------------------------------------------------  ------------------------------------------------------------------
4011  Capturing subpattern count = 1  Capturing subpattern count = 1
4012  No options  No options
4013  First char = 'a'  First char = 'a'
4014  Need char = 'b'  Need char = 'b'
4015    
4016  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4017  ------------------------------------------------------------------  ------------------------------------------------------------------
4018    0  22 Bra 0          Bra
4019    3  16 Bra 1          CBra 1
4020    6     a          a
4021    8   6 Bra 0          Once
4022   11   3 Recurse          Recurse
4023   14   6 KetRmax          KetRmax
4024   17     b          b
4025   19  16 Ket          Ket
4026   22  22 Ket          Ket
4027   25     End          End
4028  ------------------------------------------------------------------  ------------------------------------------------------------------
4029  Capturing subpattern count = 1  Capturing subpattern count = 1
4030  No options  No options
4031  First char = 'a'  First char = 'a'
4032  Need char = 'b'  Need char = 'b'
4033    
4034  /^\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
4035  Capturing subpattern count = 4  Capturing subpattern count = 4
4036  Max back reference = 4  Max back reference = 4
4037  Partial matching not supported  Partial matching not supported
# Line 4050  No need char Line 4054  No need char
4054   2: <unset>   2: <unset>
4055   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4056   4: A   4: A
4057      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4058   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4059   1: <unset>   1: <unset>
4060   2: <unset>   2: <unset>
# Line 4058  No need char Line 4062  No need char
4062   4: A   4: A
4063      *** Failers      *** Failers
4064  No match  No match
4065      The quick brown fox      The quick brown fox
4066  No match  No match
4067    
4068  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
4070  Partial matching not supported  Partial matching not supported
4071  Options: anchored  Options: anchored
# Line 4081  No need char Line 4085  No need char
4085  No match  No match
4086      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4087  No match  No match
4088    
4089  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4090  Capturing subpattern count = 2  Capturing subpattern count = 2
4091  Options: anchored  Options: anchored
4092  No first char  No first char
# Line 4091  No need char Line 4095  No need char
4095   0: xyz   0: xyz
4096   1: xyz   1: xyz
4097   2: y   2: y
4098      xxyzxyzz      xxyzxyzz
4099   0: xxyzxyzz   0: xxyzxyzz
4100   1: xxyzxyzz   1: xxyzxyzz
4101   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 4103  No need char
4103  No match  No match
4104      xxyzz      xxyzz
4105  No match  No match
4106      xxyzxyzxyzz      xxyzxyzxyzz
4107  No match  No match
4108    
4109  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4110  Capturing subpattern count = 2  Capturing subpattern count = 2
4111  Partial matching not supported  Partial matching not supported
4112  Options: extended  Options: extended
# Line 4124  Need char = '>' Line 4128  Need char = '>'
4128   0: <def>   0: <def>
4129   1: <def>   1: <def>
4130   2: <def>   2: <def>
4131      <abc<>def>      <abc<>def>
4132   0: <abc<>def>   0: <abc<>def>
4133   1: <abc<>def>   1: <abc<>def>
4134   2: <abc<>def>   2: <abc<>def>
4135      <abc<>      <abc<>
4136   0: <>   0: <>
4137   1: <>   1: <>
4138   2: <>   2: <>
# Line 4137  No match Line 4141  No match
4141      <abc      <abc
4142  No match  No match
4143    
4144  /(?1)/  /(?1)/I
4145  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4146    
4147  /((?2)(abc)/  /((?2)(abc)/I
4148  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4149    
4150  /^(abc)def(?1)/  /^(abc)def(?1)/I
4151  Capturing subpattern count = 1  Capturing subpattern count = 1
4152  Options: anchored  Options: anchored
4153  No first char  No first char
# Line 4152  No need char Line 4156  No need char
4156   0: abcdefabc   0: abcdefabc
4157   1: abc   1: abc
4158    
4159  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4160  Capturing subpattern count = 1  Capturing subpattern count = 1
4161  Options: anchored  Options: anchored
4162  No first char  No first char
# Line 4163  No need char Line 4167  No need char
4167      a=b      a=b
4168   0: a=b   0: a=b
4169   1: a   1: a
4170      a=bc      a=bc
4171   0: a=bc   0: a=bc
4172   1: a   1: a
4173    
4174  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4175  Capturing subpattern count = 2  Capturing subpattern count = 2
4176  Options: anchored  Options: anchored
4177  No first char  No first char
# Line 4180  No need char Line 4184  No need char
4184   0: a=b   0: a=b
4185   1: a   1: a
4186   2: b   2: b
4187      a=bc      a=bc
4188   0: a=bc   0: a=bc
4189   1: a   1: a
4190   2: c   2: c
4191    
4192  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4193  ------------------------------------------------------------------  ------------------------------------------------------------------
4194    0  28 Bra 0          Bra
4195    3     a          a
4196    5   5 Bra 1          CBra 1
4197    8     b          b
4198   10   5 Alt          Alt
4199   13     c          c
4200   15  10 Ket          Ket
4201   18     d          d
4202   20   5 Bra 2          CBra 2
4203   23     e          e
4204   25   5 Ket          Ket
4205   28  28 Ket          Ket
4206   31     End          End
4207  ------------------------------------------------------------------  ------------------------------------------------------------------
4208  Capturing subpattern count = 2  Capturing subpattern count = 2
4209  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4212  Need char = 'e' Line 4216  Need char = 'e'
4216   0: abde   0: abde
4217   1: b   1: b
4218   2: e   2: e
4219      acde      acde
4220   0: acde   0: acde
4221   1: c   1: c
4222   2: e   2: e
4223    
4224  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4225  ------------------------------------------------------------------  ------------------------------------------------------------------
4226    0  35 Bra 0          Bra
4227    3  21 Bra 0          Bra
4228    6     a          a
4229    8  13 Bra 1          CBra 1
4230   11     c          c
4231   13   5 Bra 2          CBra 2
4232   16     d          d
4233   18   5 Ket          Ket
4234   21  13 Ket          Ket
4235   24  21 Ket          Ket
4236   27   5 Bra 3          CBra 3
4237   30     a          a
4238   32   5 Ket          Ket
4239   35  35 Ket          Ket
4240   38     End          End
4241  ------------------------------------------------------------------  ------------------------------------------------------------------
4242  Capturing subpattern count = 3  Capturing subpattern count = 3
4243  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4244  No options Line 4248  No options
4248  First char = 'a'  First char = 'a'
4249  Need char = 'a'  Need char = 'a'
4250    
4251  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4252  ------------------------------------------------------------------  ------------------------------------------------------------------
4253    0  28 Bra 0          Bra
4254    3   5 Bra 1          CBra 1
4255    6     a          a
4256    8   5 Ket          Ket
4257   11     Any          Any
4258   12     Any          Any
4259   13     Any          Any
4260   14     \1          \1
4261   17     bbb          bbb
4262   23   3 Recurse          Once
4263   26     d          Recurse
4264   28  28 Ket          Ket
4265   31     End          d
4266            Ket
4267            End
4268  ------------------------------------------------------------------  ------------------------------------------------------------------
4269  Capturing subpattern count = 1  Capturing subpattern count = 1
4270  Max back reference = 1  Max back reference = 1
# Line 4268  No options Line 4274  No options
4274  First char = 'a'  First char = 'a'
4275  Need char = 'd'  Need char = 'd'
4276    
4277  /^\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
4278  Capturing subpattern count = 4  Capturing subpattern count = 4
4279  Max back reference = 4  Max back reference = 4
4280  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4296  No need char Line 4302  No need char
4302   2: <unset>   2: <unset>
4303   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4304   4: A   4: A
4305      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4306   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4307   1: <unset>   1: <unset>
4308   2: <unset>   2: <unset>
# Line 4304  No need char Line 4310  No need char
4310   4: A   4: A
4311      *** Failers      *** Failers
4312  No match  No match
4313      The quick brown fox      The quick brown fox
4314  No match  No match
4315    
4316  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4317  Capturing subpattern count = 1  Capturing subpattern count = 1
4318  Max back reference = 1  Max back reference = 1
4319  No options  No options
# Line 4316  No need char Line 4322  No need char
4322    bb    bb
4323   0: bb   0: bb
4324   1: b   1: b
4325    bbaa    bbaa
4326   0: bba   0: bba
4327   1: b   1: b
4328    
4329  /(.*)a/sI  /(.*)a/Is
4330  Capturing subpattern count = 1  Capturing subpattern count = 1
4331  Partial matching not supported  Partial matching not supported
4332  Options: anchored dotall  Options: anchored dotall
4333  No first char  No first char
4334  Need char = 'a'  Need char = 'a'
4335    
4336  /(.*)a\1/sI  /(.*)a\1/Is
4337  Capturing subpattern count = 1  Capturing subpattern count = 1
4338  Max back reference = 1  Max back reference = 1
4339  Partial matching not supported  Partial matching not supported
# Line 4335  Options: dotall Line 4341  Options: dotall
4341  No first char  No first char
4342  Need char = 'a'  Need char = 'a'
4343    
4344  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4345  Capturing subpattern count = 2  Capturing subpattern count = 2
4346  Max back reference = 2  Max back reference = 2
4347  Partial matching not supported  Partial matching not supported
# Line 4343  Options: anchored dotall Line 4349  Options: anchored dotall
4349  No first char  No first char
4350  Need char = 'b'  Need char = 'b'
4351    
4352  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4353  Capturing subpattern count = 3  Capturing subpattern count = 3
4354  Partial matching not supported  Partial matching not supported
4355  Options: anchored dotall  Options: anchored dotall
4356  No first char  No first char
4357  Need char = 'z'  Need char = 'z'
4358    
4359  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4360  Capturing subpattern count = 3  Capturing subpattern count = 3
4361  Max back reference = 1  Max back reference = 1
4362  Partial matching not supported  Partial matching not supported
# Line 4358  Options: dotall Line 4364  Options: dotall
4364  No first char  No first char
4365  Need char = 'z'  Need char = 'z'
4366    
4367  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4368  Capturing subpattern count = 3  Capturing subpattern count = 3
4369  Max back reference = 2  Max back reference = 2
4370  Partial matching not supported  Partial matching not supported
# Line 4366  Options: dotall Line 4372  Options: dotall
4372  No first char  No first char
4373  Need char = 'z'  Need char = 'z'
4374    
4375  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4376  Capturing subpattern count = 3  Capturing subpattern count = 3
4377  Max back reference = 3  Max back reference = 3
4378  Partial matching not supported  Partial matching not supported
# Line 4374  Options: dotall Line 4380  Options: dotall
4380  No first char  No first char
4381  Need char = 'z'  Need char = 'z'
4382    
4383  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4384  Capturing subpattern count = 3  Capturing subpattern count = 3
4385  Max back reference = 3  Max back reference = 3
4386  Partial matching not supported  Partial matching not supported
# Line 4382  Options: anchored dotall Line 4388  Options: anchored dotall
4388  No first char  No first char
4389  Need char = 'z'  Need char = 'z'
4390    
4391  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4392  Capturing subpattern count = 31  Capturing subpattern count = 31
4393  Partial matching not supported  Partial matching not supported
4394  Options: anchored dotall  Options: anchored dotall
4395  No first char  No first char
4396  No need char  No need char
4397    
4398  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4399  Capturing subpattern count = 31  Capturing subpattern count = 31
4400  Max back reference = 31  Max back reference = 31
4401  Partial matching not supported  Partial matching not supported
# Line 4397  Options: dotall Line 4403  Options: dotall
4403  No first char  No first char
4404  No need char  No need char
4405    
4406  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4407  Capturing subpattern count = 32  Capturing subpattern count = 32
4408  Max back reference = 32  Max back reference = 32
4409  Partial matching not supported  Partial matching not supported
# Line 4405  Options: dotall Line 4411  Options: dotall
4411  No first char  No first char
4412  No need char  No need char
4413    
4414  /(a)(bc)/ND  /(a)(bc)/INDZ
4415  ------------------------------------------------------------------  ------------------------------------------------------------------
4416    0  21 Bra 0          Bra
4417    3   5 Bra 0          Bra
4418    6     a          a
4419    8   5 Ket          Ket
4420   11   7 Bra 0          Bra
4421   14     bc          bc
4422   18   7 Ket          Ket
4423   21  21 Ket          Ket
4424   24     End          End
4425  ------------------------------------------------------------------  ------------------------------------------------------------------
4426  Capturing subpattern count = 0  Capturing subpattern count = 0
4427  Options:  Options: no_auto_capture
4428  First char = 'a'  First char = 'a'
4429  Need char = 'c'  Need char = 'c'
4430    abc    abc
4431   0: abc   0: abc
4432    
4433  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4434  ------------------------------------------------------------------  ------------------------------------------------------------------
4435    0  21 Bra 0          Bra
4436    3   5 Bra 1          CBra 1
4437    6     a          a
4438    8   5 Ket          Ket