/[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 81 by nigel, Sat Feb 24 21:40:59 2007 UTC revision 271 by ph10, Fri Nov 16 19:58:26 2007 UTC
# Line 1  Line 1 
1  PCRE version 6.2 01-Aug-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 111  Failed: missing ) at offset 4 Line 109  Failed: missing ) at offset 4
109  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
110    
111  /(?z)abc/  /(?z)abc/
112  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- 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 312  No match Line 310  No match
310  No match  No match
311    
312  /ab(?z)cd/  /ab(?z)cd/
313  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- 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 953  Failed: missing ) at offset 4 Line 946  Failed: missing ) at offset 4
946  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
947    
948  /a(?{)b/  /a(?{)b/
949  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
950    
951  /a(?{{})b/  /a(?{{})b/
952  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
953    
954  /a(?{}})b/  /a(?{}})b/
955  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
956    
957  /a(?{"{"})b/  /a(?{"{"})b/
958  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
959    
960  /a(?{"{"}})b/  /a(?{"{"}})b/
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- 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
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
965    
966  /[a[:xyz:/  /[a[:xyz:/
967  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 991  Failed: POSIX code 9: bad escape sequenc Line 981  Failed: POSIX code 9: bad escape sequenc
981  /abc/\i  /abc/\i
982  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
983    
984  /(a)bc(d)/  /(a)bc(d)/I
985  Capturing subpattern count = 2  Capturing subpattern count = 2
986  No options  No options
987  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 1000  Need char = 'd'
1000   1: a   1: a
1001   2: d   2: d
1002  copy substring 5 failed -7  copy substring 5 failed -7
1003    
1004  /(.{20})/  /(.{20})/I
1005  Capturing subpattern count = 1  Capturing subpattern count = 1
1006  Partial matching not supported  Partial matching not supported
1007  No options  No options
# Line 1023  No need char Line 1013  No need char
1013      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1014   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1015   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1016  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1017      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1018   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1019   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1020   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1021    
1022  /(.{15})/  /(.{15})/I
1023  Capturing subpattern count = 1  Capturing subpattern count = 1
1024  Partial matching not supported  Partial matching not supported
1025  No options  No options
# Line 1044  No need char Line 1034  No need char
1034   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1035   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1036    
1037  /(.{16})/  /(.{16})/I
1038  Capturing subpattern count = 1  Capturing subpattern count = 1
1039  Partial matching not supported  Partial matching not supported
1040  No options  No options
# Line 1056  No need char Line 1046  No need char
1046      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1047   0: abcdefghijklmnop   0: abcdefghijklmnop
1048   1: abcdefghijklmnop   1: abcdefghijklmnop
1049  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1050   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1051   0L abcdefghijklmnop   0L abcdefghijklmnop
1052   1L abcdefghijklmnop   1L abcdefghijklmnop
1053    
1054  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1055  Capturing subpattern count = 3  Capturing subpattern count = 3
1056  Options: anchored  Options: anchored
1057  No first char  No first char
1058  No need char  No need char
1059      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1060   0: adef   0: adef
1061   1: a   1: a
1062   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1069  get substring 4 failed -7
1069   1L a   1L a
1070   2L   2L
1071   3L f   3L f
1072      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1073   0: bcdef   0: bcdef
1074   1: bc   1: bc
1075   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1082  get substring 4 failed -7
1082   1L bc   1L bc
1083   2L bc   2L bc
1084   3L f   3L f
1085      adefghijk\C0      adefghijk\C0
1086   0: adef   0: adef
1087   1: a   1: a
1088   2: <unset>   2: <unset>
1089   3: f   3: f
1090   0C adef (4)   0C adef (4)
1091    
1092  /^abc\00def/  /^abc\00def/I
1093  Capturing subpattern count = 0  Capturing subpattern count = 0
1094  Options: anchored  Options: anchored
1095  No first char  No first char
1096  No need char  No need char
1097      abc\00def\L\C0      abc\00def\L\C0
1098   0: abc\x00def   0: abc\x00def
1099   0C abc (7)   0C abc (7)
1100   0L abc   0L abc
1101    
1102  /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]+
1103  )((?:[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]+
1104  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1105  Capturing subpattern count = 8  Capturing subpattern count = 8
1106  Partial matching not supported  Partial matching not supported
1107    Contains explicit CR or LF match
1108  No options  No options
1109  First char = 'w'  First char = 'w'
1110  Need char = 'd'  Need char = 'd'
1111    
1112  /.*X/D  /.*X/IDZ
1113  ------------------------------------------------------------------  ------------------------------------------------------------------
1114    0   7 Bra 0          Bra
1115    3     Any*          Any*
1116    5     X          X
1117    7   7 Ket          Ket
1118   10     End          End
1119  ------------------------------------------------------------------  ------------------------------------------------------------------
1120  Capturing subpattern count = 0  Capturing subpattern count = 0
1121  Partial matching not supported  Partial matching not supported
1122  No options  No options
1123  First char at start or follows \n  First char at start or follows newline
1124  Need char = 'X'  Need char = 'X'
1125    
1126  /.*X/Ds  /.*X/IDZs
1127  ------------------------------------------------------------------  ------------------------------------------------------------------
1128    0   7 Bra 0          Bra
1129    3     Any*          Any*
1130    5     X          X
1131    7   7 Ket          Ket
1132   10     End          End
1133  ------------------------------------------------------------------  ------------------------------------------------------------------
1134  Capturing subpattern count = 0  Capturing subpattern count = 0
1135  Partial matching not supported  Partial matching not supported
# Line 1147  Options: anchored dotall Line 1137  Options: anchored dotall
1137  No first char  No first char
1138  Need char = 'X'  Need char = 'X'
1139    
1140  /(.*X|^B)/D  /(.*X|^B)/IDZ
1141  ------------------------------------------------------------------  ------------------------------------------------------------------
1142    0  19 Bra 0          Bra
1143    3   7 Bra 1          CBra 1
1144    6     Any*          Any*
1145    8     X          X
1146   10   6 Alt          Alt
1147   13     ^          ^
1148   14     B          B
1149   16  13 Ket          Ket
1150   19  19 Ket          Ket
1151   22     End          End
1152  ------------------------------------------------------------------  ------------------------------------------------------------------
1153  Capturing subpattern count = 1  Capturing subpattern count = 1
1154  Partial matching not supported  Partial matching not supported
1155  No options  No options
1156  First char at start or follows \n  First char at start or follows newline
1157  No need char  No need char
1158    
1159  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161    0  19 Bra 0          Bra
1162    3   7 Bra 1          CBra 1
1163    6     Any*          Any*
1164    8     X          X
1165   10   6 Alt          Alt
1166   13     ^          ^
1167   14     B          B
1168   16  13 Ket          Ket
1169   19  19 Ket          Ket
1170   22     End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 1  Capturing subpattern count = 1
1173  Partial matching not supported  Partial matching not supported
1174  Options: anchored dotall  Options: anchored dotall
1175  No first char  No first char
1176  No need char  No need char
1177    
1178  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180    0  19 Bra 0          Bra
1181    3   7 Bra 1          CBra 1
1182    6     Any*          Any*
1183    8     X          X
1184   10   6 Alt          Alt
1185   13     ^          ^
1186   14     B          B
1187   16  13 Ket          Ket
1188   19  19 Ket          Ket
1189   22     End          End
1190  ------------------------------------------------------------------  ------------------------------------------------------------------
1191  Capturing subpattern count = 1  Capturing subpattern count = 1
1192  Partial matching not supported  Partial matching not supported
# Line 1204  Options: anchored dotall Line 1194  Options: anchored dotall
1194  No first char  No first char
1195  No need char  No need char
1196    
1197  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
1199    0  25 Bra 0          Bra
1200    3   9 Bra 0          Bra
1201    6  04 Opt       04 Opt
1202    8     Any*          Any*
1203   10     X          X
1204   12   8 Alt          Alt
1205   15  04 Opt       04 Opt
1206   17     ^          ^
1207   18     B          B
1208   20  17 Ket          Ket
1209   23  00 Opt       00 Opt
1210   25  25 Ket          Ket
1211   28     End          End
1212  ------------------------------------------------------------------  ------------------------------------------------------------------
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  Partial matching not supported  Partial matching not supported
1215  No options  No options
1216  First char at start or follows \n  First char at start or follows newline
1217  No need char  No need char
1218    
1219  /\Biss\B/+  /\Biss\B/I+
1220  Capturing subpattern count = 0  Capturing subpattern count = 0
1221  No options  No options
1222  First char = 'i'  First char = 'i'
# Line 1235  Need char = 's' Line 1225  Need char = 's'
1225   0: iss   0: iss
1226   0+ issippi   0+ issippi
1227    
1228  /\Biss\B/+P  /\Biss\B/I+P
1229      Mississippi      Mississippi
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /iss/G+  /iss/IG+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235  No options  No options
1236  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1241  Need char = 's'
1241   0: iss   0: iss
1242   0+ ippi   0+ ippi
1243    
1244  /\Biss\B/G+  /\Biss\B/IG+
1245  Capturing subpattern count = 0  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
# Line 1260  Need char = 's' Line 1250  Need char = 's'
1250   0: iss   0: iss
1251   0+ issippi   0+ issippi
1252    
1253  /\Biss\B/g+  /\Biss\B/Ig+
1254  Capturing subpattern count = 0  Capturing subpattern count = 0
1255  No options  No options
1256  First char = 'i'  First char = 'i'
# Line 1275  No match Line 1265  No match
1265      Mississippi\A      Mississippi\A
1266  No match  No match
1267    
1268  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1269  Capturing subpattern count = 0  Capturing subpattern count = 0
1270  No options  No options
1271  First char = 'i'  First char = 'i'
# Line 1286  Need char = 's' Line 1276  Need char = 's'
1276   0: iss   0: iss
1277   0+ ippi   0+ ippi
1278    
1279  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1280  Capturing subpattern count = 0  Capturing subpattern count = 0
1281  No options  No options
1282  First char = 'i'  First char = 'i'
# Line 1295  Need char = 's' Line 1285  Need char = 's'
1285   0: iss   0: iss
1286   0+ issippi   0+ issippi
1287    
1288  /^iss/g+  /^iss/Ig+
1289  Capturing subpattern count = 0  Capturing subpattern count = 0
1290  Options: anchored  Options: anchored
1291  No first char  No first char
# Line 1303  No need char Line 1293  No need char
1293      ississippi      ississippi
1294   0: iss   0: iss
1295   0+ issippi   0+ issippi
1296    
1297  /.*iss/g+  /.*iss/Ig+
1298  Capturing subpattern count = 0  Capturing subpattern count = 0
1299  Partial matching not supported  Partial matching not supported
1300  No options  No options
1301  First char at start or follows \n  First char at start or follows newline
1302  Need char = 's'  Need char = 's'
1303      abciss\nxyzisspqr      abciss\nxyzisspqr
1304   0: abciss   0: abciss
1305   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1306   0: xyziss   0: xyziss
1307   0+ pqr   0+ pqr
1308    
1309  /.i./+g  /.i./I+g
1310  Capturing subpattern count = 0  Capturing subpattern count = 0
1311  No options  No options
1312  No first char  No first char
# Line 1342  Need char = 'i' Line 1332  Need char = 'i'
1332   0+ river   0+ river
1333   0: riv   0: riv
1334   0+ er   0+ er
1335      Missouri river\A      Missouri river\A
1336   0: Mis   0: Mis
1337   0+ souri river   0+ souri river
1338    
1339  /^.is/+g  /^.is/I+g
1340  Capturing subpattern count = 0  Capturing subpattern count = 0
1341  Options: anchored  Options: anchored
1342  No first char  No first char
# Line 1355  No need char Line 1345  No need char
1345   0: Mis   0: Mis
1346   0+ sissippi   0+ sissippi
1347    
1348  /^ab\n/g+  /^ab\n/Ig+
1349  Capturing subpattern count = 0  Capturing subpattern count = 0
1350    Contains explicit CR or LF match
1351  Options: anchored  Options: anchored
1352  No first char  No first char
1353  No need char  No need char
# Line 1364  No need char Line 1355  No need char
1355   0: ab\x0a   0: ab\x0a
1356   0+ ab\x0acd   0+ ab\x0acd
1357    
1358  /^ab\n/mg+  /^ab\n/Img+
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360    Contains explicit CR or LF match
1361  Options: multiline  Options: multiline
1362  First char at start or follows \n  First char at start or follows newline
1363  Need char = 10  Need char = 10
1364      ab\nab\ncd      ab\nab\ncd
1365   0: ab\x0a   0: ab\x0a
# Line 1375  Need char = 10 Line 1367  Need char = 10
1367   0: ab\x0a   0: ab\x0a
1368   0+ cd   0+ cd
1369    
1370  /abc/  /abc/I
1371  Capturing subpattern count = 0  Capturing subpattern count = 0
1372  No options  No options
1373  First char = 'a'  First char = 'a'
1374  Need char = 'c'  Need char = 'c'
1375    
1376  /abc|bac/  /abc|bac/I
1377  Capturing subpattern count = 0  Capturing subpattern count = 0
1378  No options  No options
1379  No first char  No first char
1380  Need char = 'c'  Need char = 'c'
1381    
1382  /(abc|bac)/  /(abc|bac)/I
1383  Capturing subpattern count = 1  Capturing subpattern count = 1
1384  No options  No options
1385  No first char  No first char
1386  Need char = 'c'  Need char = 'c'
1387    
1388  /(abc|(c|dc))/  /(abc|(c|dc))/I
1389  Capturing subpattern count = 2  Capturing subpattern count = 2
1390  No options  No options
1391  No first char  No first char
1392  Need char = 'c'  Need char = 'c'
1393    
1394  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1395  Capturing subpattern count = 2  Capturing subpattern count = 2
1396  No options  No options
1397  No first char  No first char
1398  Need char = 'c'  Need char = 'c'
1399    
1400  /a*/  /a*/I
1401  Capturing subpattern count = 0  Capturing subpattern count = 0
1402  Partial matching not supported  Partial matching not supported
1403  No options  No options
1404  No first char  No first char
1405  No need char  No need char
1406    
1407  /a+/  /a+/I
1408  Capturing subpattern count = 0  Capturing subpattern count = 0
1409  Partial matching not supported  Partial matching not supported
1410  No options  No options
1411  First char = 'a'  First char = 'a'
1412  No need char  No need char
1413    
1414  /(baa|a+)/  /(baa|a+)/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
1416  Partial matching not supported  Partial matching not supported
1417  No options  No options
1418  No first char  No first char
1419  Need char = 'a'  Need char = 'a'
1420    
1421  /a{0,3}/  /a{0,3}/I
1422  Capturing subpattern count = 0  Capturing subpattern count = 0
1423  Partial matching not supported  Partial matching not supported
1424  No options  No options
1425  No first char  No first char
1426  No need char  No need char
1427    
1428  /baa{3,}/  /baa{3,}/I
1429  Capturing subpattern count = 0  Capturing subpattern count = 0
1430  Partial matching not supported  Partial matching not supported
1431  No options  No options
1432  First char = 'b'  First char = 'b'
1433  Need char = 'a'  Need char = 'a'
1434    
1435  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1436  Capturing subpattern count = 1  Capturing subpattern count = 1
1437  Partial matching not supported  Partial matching not supported
1438  No options  No options
1439  First char = '"'  First char = '"'
1440  Need char = '"'  Need char = '"'
1441    
1442  /(abc|ab[cd])/  /(abc|ab[cd])/I
1443  Capturing subpattern count = 1  Capturing subpattern count = 1
1444  No options  No options
1445  First char = 'a'  First char = 'a'
1446  No need char  No need char
1447    
1448  /(a|.)/  /(a|.)/I
1449  Capturing subpattern count = 1  Capturing subpattern count = 1
1450  No options  No options
1451  No first char  No first char
1452  No need char  No need char
1453    
1454  /a|ba|\w/  /a|ba|\w/I
1455  Capturing subpattern count = 0  Capturing subpattern count = 0
1456  No options  No options
1457  No first char  No first char
1458  No need char  No need char
1459    
1460  /abc(?=pqr)/  /abc(?=pqr)/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
1462  No options  No options
1463  First char = 'a'  First char = 'a'
1464  Need char = 'r'  Need char = 'r'
1465    
1466  /...(?<=abc)/  /...(?<=abc)/I
1467  Capturing subpattern count = 0  Capturing subpattern count = 0
1468  No options  No options
1469  No first char  No first char
1470  No need char  No need char
1471    
1472  /abc(?!pqr)/  /abc(?!pqr)/I
1473  Capturing subpattern count = 0  Capturing subpattern count = 0
1474  No options  No options
1475  First char = 'a'  First char = 'a'
1476  Need char = 'c'  Need char = 'c'
1477    
1478  /ab./  /ab./I
1479  Capturing subpattern count = 0  Capturing subpattern count = 0
1480  No options  No options
1481  First char = 'a'  First char = 'a'
1482  Need char = 'b'  Need char = 'b'
1483    
1484  /ab[xyz]/  /ab[xyz]/I
1485  Capturing subpattern count = 0  Capturing subpattern count = 0
1486  No options  No options
1487  First char = 'a'  First char = 'a'
1488  Need char = 'b'  Need char = 'b'
1489    
1490  /abc*/  /abc*/I
1491  Capturing subpattern count = 0  Capturing subpattern count = 0
1492  Partial matching not supported  Partial matching not supported
1493  No options  No options
1494  First char = 'a'  First char = 'a'
1495  Need char = 'b'  Need char = 'b'
1496    
1497  /ab.c*/  /ab.c*/I
1498  Capturing subpattern count = 0  Capturing subpattern count = 0
1499  Partial matching not supported  Partial matching not supported
1500  No options  No options
1501  First char = 'a'  First char = 'a'
1502  Need char = 'b'  Need char = 'b'
1503    
1504  /a.c*/  /a.c*/I
1505  Capturing subpattern count = 0  Capturing subpattern count = 0
1506  Partial matching not supported  Partial matching not supported
1507  No options  No options
1508  First char = 'a'  First char = 'a'
1509  No need char  No need char
1510    
1511  /.c*/  /.c*/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
1513  Partial matching not supported  Partial matching not supported
1514  No options  No options
1515  No first char  No first char
1516  No need char  No need char
1517    
1518  /ac*/  /ac*/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
1520  Partial matching not supported  Partial matching not supported
1521  No options  No options
1522  First char = 'a'  First char = 'a'
1523  No need char  No need char
1524    
1525  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1526  Capturing subpattern count = 1  Capturing subpattern count = 1
1527  Partial matching not supported  Partial matching not supported
1528  No options  No options
1529  No first char  No first char
1530  No need char  No need char
1531    
1532  /a.c*|aba/  /a.c*|aba/I
1533  Capturing subpattern count = 0  Capturing subpattern count = 0
1534  Partial matching not supported  Partial matching not supported
1535  No options  No options
1536  First char = 'a'  First char = 'a'
1537  No need char  No need char
1538    
1539  /.+a/  /.+a/I
1540  Capturing subpattern count = 0  Capturing subpattern count = 0
1541  Partial matching not supported  Partial matching not supported
1542  No options  No options
1543  No first char  No first char
1544  Need char = 'a'  Need char = 'a'
1545    
1546  /(?=abcda)a.*/  /(?=abcda)a.*/I
1547  Capturing subpattern count = 0  Capturing subpattern count = 0
1548  Partial matching not supported  Partial matching not supported
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  Need char = 'a'  Need char = 'a'
1552    
1553  /(?=a)a.*/  /(?=a)a.*/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
1555  Partial matching not supported  Partial matching not supported
1556  No options  No options
1557  First char = 'a'  First char = 'a'
1558  No need char  No need char
1559    
1560  /a(b)*/  /a(b)*/I
1561  Capturing subpattern count = 1  Capturing subpattern count = 1
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  No need char  No need char
1565    
1566  /a\d*/  /a\d*/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 0
1568  Partial matching not supported  Partial matching not supported
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /ab\d*/  /ab\d*/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
1575  Partial matching not supported  Partial matching not supported
1576  No options  No options
1577  First char = 'a'  First char = 'a'
1578  Need char = 'b'  Need char = 'b'
1579    
1580  /a(\d)*/  /a(\d)*/I
1581  Capturing subpattern count = 1  Capturing subpattern count = 1
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  No need char  No need char
1585    
1586  /abcde{0,0}/  /abcde{0,0}/I
1587  Capturing subpattern count = 0  Capturing subpattern count = 0
1588  No options  No options
1589  First char = 'a'  First char = 'a'
1590  Need char = 'd'  Need char = 'd'
1591    
1592  /ab\d+/  /ab\d+/I
1593  Capturing subpattern count = 0  Capturing subpattern count = 0
1594  Partial matching not supported  Partial matching not supported
1595  No options  No options
1596  First char = 'a'  First char = 'a'
1597  Need char = 'b'  Need char = 'b'
1598    
1599  /a(?(1)b)/  /a(?(1)b)(.)/I
1600  Capturing subpattern count = 0  Capturing subpattern count = 1
1601  No options  No options
1602  First char = 'a'  First char = 'a'
1603  No need char  No need char
1604    
1605  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1606  Capturing subpattern count = 0  Capturing subpattern count = 1
1607  No options  No options
1608  First char = 'a'  First char = 'a'
1609  Need char = 'g'  Need char = 'g'
1610    
1611  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1612  Capturing subpattern count = 0  Capturing subpattern count = 1
1613  No options  No options
1614  First char = 'a'  First char = 'a'
1615  No need char  No need char
1616    
1617  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1618  Capturing subpattern count = 0  Capturing subpattern count = 1
1619  No options  No options
1620  First char = 'a'  First char = 'a'
1621  Need char = 'g'  Need char = 'g'
1622    
1623  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1624  Capturing subpattern count = 0  Capturing subpattern count = 1
1625  No options  No options
1626  First char = 'a'  First char = 'a'
1627  Need char = 'b'  Need char = 'b'
1628    
1629  /ab\d{0}e/  /ab\d{0}e/I
1630  Capturing subpattern count = 0  Capturing subpattern count = 0
1631  No options  No options
1632  First char = 'a'  First char = 'a'
1633  Need char = 'e'  Need char = 'e'
1634    
1635  /a?b?/  /a?b?/I
1636  Capturing subpattern count = 0  Capturing subpattern count = 0
1637  No options  No options
1638  No first char  No first char
# Line 1655  No need char Line 1647  No need char
1647   0:   0:
1648      *** Failers      *** Failers
1649   0:   0:
1650      \N      \N
1651  No match  No match
1652    
1653  /|-/  /|-/I
1654  Capturing subpattern count = 0  Capturing subpattern count = 0
1655  No options  No options
1656  No first char  No first char
# Line 1671  No need char Line 1663  No need char
1663   0: -   0: -
1664      *** Failers      *** Failers
1665   0:   0:
1666      \Nabc      \Nabc
1667  No match  No match
1668    
1669  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1670      aaaabbbbzzzz      aaaabbbbzzzz
1671   0: aaaabbbbzz   0: aaaabbbbzz
1672   1: bbbb   1: bbbb
# Line 1700  No match Line 1692  No match
1692   1: bbbb   1: bbbb
1693   2: z   2: z
1694   3: z   3: z
1695    
1696  /^.?abcd/S  /^.?abcd/IS
1697  Capturing subpattern count = 0  Capturing subpattern count = 0
1698  Options: anchored  Options: anchored
1699  No first char  No first char
# Line 1715  Study returned NULL Line 1707  Study returned NULL
1707    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1708    )*            # Zero or more contents    )*            # Zero or more contents
1709    \)            # Closing )    \)            # Closing )
1710    /x    /Ix
1711  Capturing subpattern count = 0  Capturing subpattern count = 0
1712  Partial matching not supported  Partial matching not supported
1713  Options: extended  Options: extended
# Line 1727  Need char = ')' Line 1719  Need char = ')'
1719   0: (abcd)   0: (abcd)
1720      xyz(abcd)      xyz(abcd)
1721   0: (abcd)   0: (abcd)
1722      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1723   0: (ab(xy)cd)   0: (ab(xy)cd)
1724      (ab(xycd)pqr      (ab(xycd)pqr
1725   0: (xycd)   0: (xycd)
1726      () abc ()      () abc ()
1727   0: ()   0: ()
1728      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1729   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1730      *** Failers      *** Failers
1731  No match  No match
1732      abcd      abcd
1733  No match  No match
1734      abcd)      abcd)
1735  No match  No match
1736      (abcd      (abcd
1737  No match  No match
1738    
1739  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1740  Capturing subpattern count = 1  Capturing subpattern count = 1
1741  Partial matching not supported  Partial matching not supported
1742  Options: extended  Options: extended
1743  First char = '('  First char = '('
1744  Need char = ')'  Need char = ')'
1745      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1746   0: (ab(xy)cd)   0: (ab(xy)cd)
1747   1: cd   1: cd
1748      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1751  Need char = ')'
1751   0: (x(y)z)   0: (x(y)z)
1752   1: z   1: z
1753    
1754  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1755  Capturing subpattern count = 0  Capturing subpattern count = 0
1756  Partial matching not supported  Partial matching not supported
1757  Options: extended  Options: extended
# Line 1769  Need char = ')' Line 1761  Need char = ')'
1761   0: (abcd)   0: (abcd)
1762      (ab(xy)cd)      (ab(xy)cd)
1763   0: (xy)   0: (xy)
1764      (a(b(c)d)e)      (a(b(c)d)e)
1765   0: (c)   0: (c)
1766      ((ab))      ((ab))
1767   0: ((ab))   0: ((ab))
1768      *** Failers      *** Failers
1769  No match  No match
1770      ()      ()
1771  No match  No match
1772    
1773  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1774  Capturing subpattern count = 0  Capturing subpattern count = 0
1775  Partial matching not supported  Partial matching not supported
1776  Options: extended  Options: extended
# Line 1789  Need char = ')' Line 1781  Need char = ')'
1781      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1782   0: (fsh)   0: (fsh)
1783    
1784  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1785  Capturing subpattern count = 1  Capturing subpattern count = 1
1786  Partial matching not supported  Partial matching not supported
1787  Options: extended  Options: extended
# Line 1799  Need char = ')' Line 1791  Need char = ')'
1791   0: (ab(xy)cd)   0: (ab(xy)cd)
1792   1: cd   1: cd
1793    
1794  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1795  Capturing subpattern count = 2  Capturing subpattern count = 2
1796  Partial matching not supported  Partial matching not supported
1797  Options: extended  Options: extended
# Line 1810  Need char = ')' Line 1802  Need char = ')'
1802   1: ab(xy)cd   1: ab(xy)cd
1803   2: cd   2: cd
1804    
1805  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1806  Capturing subpattern count = 3  Capturing subpattern count = 3
1807  Partial matching not supported  Partial matching not supported
1808  Options: extended  Options: extended
# Line 1827  Need char = ')' Line 1819  Need char = ')'
1819   2: ab(xy)cd   2: ab(xy)cd
1820   3: cd   3: cd
1821    
1822  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1823  Capturing subpattern count = 3  Capturing subpattern count = 3
1824  Partial matching not supported  Partial matching not supported
1825  Options: extended  Options: extended
# Line 1844  Need char = ')' Line 1836  Need char = ')'
1836   2: 123   2: 123
1837   3: cd   3: cd
1838    
1839  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1840  Capturing subpattern count = 11  Capturing subpattern count = 11
1841  Partial matching not supported  Partial matching not supported
1842  Options: extended  Options: extended
# Line 1864  Need char = ')' Line 1856  Need char = ')'
1856  10: ab(xy)cd  10: ab(xy)cd
1857  11: cd  11: cd
1858    
1859  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1860  Capturing subpattern count = 3  Capturing subpattern count = 3
1861  Partial matching not supported  Partial matching not supported
1862  Options: extended  Options: extended
# Line 1876  Need char = ')' Line 1868  Need char = ')'
1868   2: 123   2: 123
1869   3: <unset>   3: <unset>
1870    
1871  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1872  Capturing subpattern count = 3  Capturing subpattern count = 3
1873  Partial matching not supported  Partial matching not supported
1874  Options: extended  Options: extended
# Line 1893  Need char = ')' Line 1885  Need char = ')'
1885   2: ij   2: ij
1886   3: (cd(ef)gh)   3: (cd(ef)gh)
1887    
1888  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1889    ------------------------------------------------------------------
1890            Bra
1891            ^
1892            [0-9A-Za-z]
1893            Ket
1894            End
1895    ------------------------------------------------------------------
1896    Capturing subpattern count = 0
1897    Options: anchored
1898    No first char
1899    No need char
1900    
1901    /^[[:^alnum:]]/DZ
1902  ------------------------------------------------------------------  ------------------------------------------------------------------
1903    0  37 Bra 0          Bra
1904    3     ^          ^
1905    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1906   37  37 Ket          Ket
1907   40     End          End
1908  ------------------------------------------------------------------  ------------------------------------------------------------------
1909  Capturing subpattern count = 0  Capturing subpattern count = 0
1910  Options: anchored  Options: anchored
1911  No first char  No first char
1912  No need char  No need char
1913    
1914  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1915  ------------------------------------------------------------------  ------------------------------------------------------------------
1916    0  37 Bra 0          Bra
1917    3     ^          ^
1918    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1919   37  37 Ket          Ket
1920   40     End          End
1921  ------------------------------------------------------------------  ------------------------------------------------------------------
1922  Capturing subpattern count = 0  Capturing subpattern count = 0
1923  Options: anchored  Options: anchored
1924  No first char  No first char
1925  No need char  No need char
1926    
1927  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1928  ------------------------------------------------------------------  ------------------------------------------------------------------
1929    0  37 Bra 0          Bra
1930    3     ^          ^
1931    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1932   37  37 Ket          Ket
1933   40     End          End
1934  ------------------------------------------------------------------  ------------------------------------------------------------------
1935  Capturing subpattern count = 0  Capturing subpattern count = 0
1936  Options: anchored  Options: anchored
1937  No first char  No first char
1938  No need char  No need char
1939    
1940  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1941    Capturing subpattern count = 0
1942    No options
1943    No first char
1944    No need char
1945    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
1946      _ 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
1947    
1948    /^[[:ascii:]]/DZ
1949  ------------------------------------------------------------------  ------------------------------------------------------------------
1950    0  37 Bra 0          Bra
1951    3     ^          ^
1952    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1953   37  37 Ket          Ket
1954   40     End          End
1955  ------------------------------------------------------------------  ------------------------------------------------------------------
1956  Capturing subpattern count = 0  Capturing subpattern count = 0
1957  Options: anchored  Options: anchored
1958  No first char  No first char
1959  No need char  No need char
1960    
1961  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1962  ------------------------------------------------------------------  ------------------------------------------------------------------
1963    0  37 Bra 0          Bra
1964    3     ^          ^
1965    4     [\x00-\x7f]          [\x80-\xff] (neg)
1966   37  37 Ket          Ket
1967   40     End          End
1968  ------------------------------------------------------------------  ------------------------------------------------------------------
1969  Capturing subpattern count = 0  Capturing subpattern count = 0
1970  Options: anchored  Options: anchored
1971  No first char  No first char
1972  No need char  No need char
1973    
1974  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1975  ------------------------------------------------------------------  ------------------------------------------------------------------
1976    0  37 Bra 0          Bra
1977    3     ^          ^
1978    4     [\x80-\xff]          [\x09 ]
1979   37  37 Ket          Ket
1980   40     End          End
1981  ------------------------------------------------------------------  ------------------------------------------------------------------
1982  Capturing subpattern count = 0  Capturing subpattern count = 0
1983  Options: anchored  Options: anchored
1984  No first char  No first char
1985  No need char  No need char
1986    
1987  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1988  ------------------------------------------------------------------  ------------------------------------------------------------------
1989    0  37 Bra 0          Bra
1990    3     ^          ^
1991    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1992   37  37 Ket          Ket
1993   40     End          End
1994  ------------------------------------------------------------------  ------------------------------------------------------------------
1995  Capturing subpattern count = 0  Capturing subpattern count = 0
1996  Options: anchored  Options: anchored
1997  No first char  No first char
1998  No need char  No need char
1999    
2000  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2001    Capturing subpattern count = 0
2002    Contains explicit CR or LF match
2003    No options
2004    No first char
2005    No need char
2006    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2007    
2008    /^[[:cntrl:]]/DZ
2009  ------------------------------------------------------------------  ------------------------------------------------------------------
2010    0  37 Bra 0          Bra
2011    3     ^          ^
2012    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2013   37  37 Ket          Ket
2014   40     End          End
2015  ------------------------------------------------------------------  ------------------------------------------------------------------
2016  Capturing subpattern count = 0  Capturing subpattern count = 0
2017  Options: anchored  Options: anchored
2018  No first char  No first char
2019  No need char  No need char
2020    
2021  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2022  ------------------------------------------------------------------  ------------------------------------------------------------------
2023    0  37 Bra 0          Bra
2024    3     ^          ^
2025    4     [0-9]          [0-9]
2026   37  37 Ket          Ket
2027   40     End          End
2028  ------------------------------------------------------------------  ------------------------------------------------------------------
2029  Capturing subpattern count = 0  Capturing subpattern count = 0
2030  Options: anchored  Options: anchored
2031  No first char  No first char
2032  No need char  No need char
2033    
2034  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2035  ------------------------------------------------------------------  ------------------------------------------------------------------
2036    0  37 Bra 0          Bra
2037    3     ^          ^
2038    4     [!-~]          [!-~]
2039   37  37 Ket          Ket
2040   40     End          End
2041  ------------------------------------------------------------------  ------------------------------------------------------------------
2042  Capturing subpattern count = 0  Capturing subpattern count = 0
2043  Options: anchored  Options: anchored
2044  No first char  No first char
2045  No need char  No need char
2046    
2047  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2048  ------------------------------------------------------------------  ------------------------------------------------------------------
2049    0  37 Bra 0          Bra
2050    3     ^          ^
2051    4     [a-z]          [a-z]
2052   37  37 Ket          Ket
2053   40     End          End
2054  ------------------------------------------------------------------  ------------------------------------------------------------------
2055  Capturing subpattern count = 0  Capturing subpattern count = 0
2056  Options: anchored  Options: anchored
2057  No first char  No first char
2058  No need char  No need char
2059    
2060  /^[[:print:]]/D  /^[[:print:]]/DZ
2061  ------------------------------------------------------------------  ------------------------------------------------------------------
2062    0  37 Bra 0          Bra
2063    3     ^          ^
2064    4     [ -~]          [ -~]
2065   37  37 Ket          Ket
2066   40     End          End
2067  ------------------------------------------------------------------  ------------------------------------------------------------------
2068  Capturing subpattern count = 0  Capturing subpattern count = 0
2069  Options: anchored  Options: anchored
2070  No first char  No first char
2071  No need char  No need char
2072    
2073  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2074  ------------------------------------------------------------------  ------------------------------------------------------------------
2075    0  37 Bra 0          Bra
2076    3     ^          ^
2077    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2078   37  37 Ket          Ket
2079   40     End          End
2080  ------------------------------------------------------------------  ------------------------------------------------------------------
2081  Capturing subpattern count = 0  Capturing subpattern count = 0
2082  Options: anchored  Options: anchored
2083  No first char  No first char
2084  No need char  No need char
2085    
2086  /^[[:space:]]/D  /^[[:space:]]/DZ
2087  ------------------------------------------------------------------  ------------------------------------------------------------------
2088    0  37 Bra 0          Bra
2089    3     ^          ^
2090    4     [\x09-\x0d ]          [\x09-\x0d ]
2091   37  37 Ket          Ket
2092   40     End          End
2093  ------------------------------------------------------------------  ------------------------------------------------------------------
2094  Capturing subpattern count = 0  Capturing subpattern count = 0
2095  Options: anchored  Options: anchored
2096  No first char  No first char
2097  No need char  No need char
2098    
2099  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2100  ------------------------------------------------------------------  ------------------------------------------------------------------
2101    0  37 Bra 0          Bra
2102    3     ^          ^
2103    4     [A-Z]          [A-Z]
2104   37  37 Ket          Ket
2105   40     End          End
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
2107  Capturing subpattern count = 0  Capturing subpattern count = 0
2108  Options: anchored  Options: anchored
2109  No first char  No first char
2110  No need char  No need char
2111    
2112  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2113  ------------------------------------------------------------------  ------------------------------------------------------------------
2114    0  37 Bra 0          Bra
2115    3     ^          ^
2116    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2117   37  37 Ket          Ket
2118   40     End          End
2119  ------------------------------------------------------------------  ------------------------------------------------------------------
2120  Capturing subpattern count = 0  Capturing subpattern count = 0
2121  Options: anchored  Options: anchored
2122  No first char  No first char
2123  No need char  No need char
2124    
2125  /^[[:word:]]/D  /^[[:word:]]/DZ
2126  ------------------------------------------------------------------  ------------------------------------------------------------------
2127    0  37 Bra 0          Bra
2128    3     ^          ^
2129    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2130   37  37 Ket          Ket
2131   40     End          End
2132  ------------------------------------------------------------------  ------------------------------------------------------------------
2133  Capturing subpattern count = 0  Capturing subpattern count = 0
2134  Options: anchored  Options: anchored
2135  No first char  No first char
2136  No need char  No need char
2137    
2138  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2139  ------------------------------------------------------------------  ------------------------------------------------------------------
2140    0  37 Bra 0          Bra
2141    3     ^          ^
2142    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2143   37  37 Ket          Ket
2144   40     End          End
2145  ------------------------------------------------------------------  ------------------------------------------------------------------
2146  Capturing subpattern count = 0  Capturing subpattern count = 0
2147  Options: anchored  Options: anchored
2148  No first char  No first char
2149  No need char  No need char
2150    
2151  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2152  ------------------------------------------------------------------  ------------------------------------------------------------------
2153    0  37 Bra 0          Bra
2154    3     ^          ^
2155    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2156   37  37 Ket          Ket
2157   40     End          End
2158  ------------------------------------------------------------------  ------------------------------------------------------------------
2159  Capturing subpattern count = 0  Capturing subpattern count = 0
2160  Options: anchored  Options: anchored
2161  No first char  No first char
2162  No need char  No need char
2163    
2164  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2165  ------------------------------------------------------------------  ------------------------------------------------------------------
2166    0  37 Bra 0          Bra
2167    3     ^          ^
2168    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2169   37  37 Ket          Ket
2170   40     End          End
2171  ------------------------------------------------------------------  ------------------------------------------------------------------
2172  Capturing subpattern count = 0  Capturing subpattern count = 0
2173  Options: anchored  Options: anchored
2174  No first char  No first char
2175  No need char  No need char
2176    
2177  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2178  ------------------------------------------------------------------  ------------------------------------------------------------------
2179    0  36 Bra 0          Bra
2180    3     [%01A-Za-z]          [%01A-Za-z]
2181   36  36 Ket          Ket
2182   39     End          End
2183  ------------------------------------------------------------------  ------------------------------------------------------------------
2184  Capturing subpattern count = 0  Capturing subpattern count = 0
2185  No options  No options
2186  No first char  No first char
2187  No need char  No need char
2188    
2189  /[[.ch.]]/  /[[.ch.]]/I
2190  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2191    
2192  /[[=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  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2196  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2197    
2198  /[[:upper:]]/i  /[[:upper:]]/Ii
2199  Capturing subpattern count = 0  Capturing subpattern count = 0
2200  Options: caseless  Options: caseless
2201  No first char  No first char
2202  No need char  No need char
2203      A      A
2204   0: A   0: A
2205      a      a
2206   0: a   0: a
2207    
2208  /[[:lower:]]/i  /[[:lower:]]/Ii
2209  Capturing subpattern count = 0  Capturing subpattern count = 0
2210  Options: caseless  Options: caseless
2211  No first char  No first char
2212  No need char  No need char
2213      A      A
2214   0: A   0: A
2215      a      a
2216   0: a   0: a
2217    
2218  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2219  Capturing subpattern count = 1  Capturing subpattern count = 1
2220  Options: caseless  Options: caseless
 Case state changes  
2221  No first char  No first char
2222  No need char  No need char
2223      ab      ab
# Line 2211  No need char Line 2231  No need char
2231   1: a   1: a
2232      Ab      Ab
2233  No match  No match
2234      AB      AB
2235  No match  No match
2236    
2237  /[\200-\410]/  /[\200-\110]/I
2238  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2239    
2240  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2241  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2242    
2243  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2244  Capturing subpattern count = 0  Capturing subpattern count = 0
2245  No options  No options
2246  First char = 'T'  First char = 'T'
2247  Need char = 'd'  Need char = 'd'
2248    
2249  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2250  Capturing subpattern count = 271  Capturing subpattern count = 271
2251  Max back reference = 270  Max back reference = 270
2252  Partial matching not supported  Partial matching not supported
# Line 2507  No need char Line 2527  No need char
2527  270: ABC  270: ABC
2528  271: ABC  271: ABC
2529    
2530  /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
2531  Capturing subpattern count = 0  Capturing subpattern count = 0
2532  No options  No options
2533  First char = 'T'  First char = 'T'
2534  Need char = 't'  Need char = 't'
2535    
2536  /(main(O)?)+/  /(main(O)?)+/I
2537  Capturing subpattern count = 2  Capturing subpattern count = 2
2538  No options  No options
2539  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2545  Need char = 'n'
2545   0: mainOmain   0: mainOmain
2546   1: main   1: main
2547   2: O   2: O
2548    
2549  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2550  Capturing subpattern count = 1  Capturing subpattern count = 1
2551  No options  No options
2552  First char = 'T'  First char = 'T'
2553  Need char = 's'  Need char = 's'
2554    
2555  /^(a(b)?)+$/  /^(a(b)?)+$/I
2556  Capturing subpattern count = 2  Capturing subpattern count = 2
2557  Options: anchored  Options: anchored
2558  No first char  No first char
# Line 2541  No need char Line 2561  No need char
2561   0: aba   0: aba
2562   1: a   1: a
2563   2: b   2: b
2564    
2565  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2566  Capturing subpattern count = 2  Capturing subpattern count = 2
2567  Options: anchored  Options: anchored
2568  No first char  No first char
2569  No need char  No need char
2570      aabbaa      aabbaa
2571   0: aabbaa   0: aabbaa
2572   1: aa   1: aa
2573   2: bb   2: bb
2574    
2575  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2576  Capturing subpattern count = 2  Capturing subpattern count = 2
2577  Options: anchored  Options: anchored
2578  No first char  No first char
2579  No need char  No need char
2580      aabbaa      aabbaa
2581   0: aabbaa   0: aabbaa
2582   1: aa   1: aa
2583   2: bb   2: bb
2584    
2585  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2586  Capturing subpattern count = 2  Capturing subpattern count = 2
2587  Options: anchored  Options: anchored
2588  No first char  No first char
2589  No need char  No need char
2590      aabbaa      aabbaa
2591   0: aabbaa   0: aabbaa
2592   1: aa   1: aa
2593   2: bb   2: bb
2594    
2595  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2596  Capturing subpattern count = 1  Capturing subpattern count = 1
2597  Options: anchored  Options: anchored
2598  No first char  No first char
2599  No need char  No need char
2600      aabbaa      aabbaa
2601   0: aabbaa   0: aabbaa
2602   1: bb   1: bb
2603    
2604  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2605  Capturing subpattern count = 3  Capturing subpattern count = 3
2606  Options: anchored  Options: anchored
2607  No first char  No first char
2608  No need char  No need char
2609      aabbaa      aabbaa
2610   0: aabbaa   0: aabbaa
2611   1: aa   1: aa
2612   2: bb   2: bb
2613   3: b   3: b
2614    
2615  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2616  Capturing subpattern count = 2  Capturing subpattern count = 2
2617  Options: anchored  Options: anchored
2618  No first char  No first char
2619  No need char  No need char
2620      aabbaa      aabbaa
2621   0: aabbaa   0: aabbaa
2622   1: bb   1: bb
2623   2: b   2: b
2624    
2625  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2626  Capturing subpattern count = 1  Capturing subpattern count = 1
2627  Options: anchored  Options: anchored
2628  No first char  No first char
2629  No need char  No need char
2630      aabbaa      aabbaa
2631   0: aabbaa   0: aabbaa
2632   1: bb   1: bb
2633    
2634  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2635  Capturing subpattern count = 1  Capturing subpattern count = 1
2636  Options: anchored  Options: anchored
2637  No first char  No first char
2638  No need char  No need char
2639      aabbbaa      aabbbaa
2640   0: aabbbaa   0: aabbbaa
2641   1: bbb   1: bbb
2642    
2643  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2644  Capturing subpattern count = 1  Capturing subpattern count = 1
2645  Options: anchored  Options: anchored
2646  No first char  No first char
2647  No need char  No need char
2648      aabbbaa      aabbbaa
2649   0: aabbbaa   0: aabbbaa
2650   1: bbb   1: bbb
2651    
2652  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2653  Capturing subpattern count = 1  Capturing subpattern count = 1
2654  Options: anchored  Options: anchored
2655  No first char  No first char
2656  No need char  No need char
2657      aabbaa      aabbaa
2658   0: aabbaa   0: aabbaa
2659   1: b   1: b
2660    
2661  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2662  Capturing subpattern count = 1  Capturing subpattern count = 1
2663  Options: anchored  Options: anchored
2664  No first char  No first char
2665  No need char  No need char
2666      aabbbaa      aabbbaa
2667   0: aabbbaa   0: aabbbaa
2668   1: bb   1: bb
2669    
2670  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2671  Capturing subpattern count = 3  Capturing subpattern count = 3
2672  Options: anchored  Options: anchored
2673  No first char  No first char
2674  No need char  No need char
2675      aabbbaa      aabbbaa
2676   0: aabbbaa   0: aabbbaa
2677   1: aa   1: aa
2678   2: bbb   2: bbb
2679   3: bb   3: bb
2680    
2681  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2682  Capturing subpattern count = 3  Capturing subpattern count = 3
2683  Options: anchored  Options: anchored
2684  No first char  No first char
2685  No need char  No need char
2686      aabbbbaa      aabbbbaa
2687   0: aabbbbaa   0: aabbbbaa
2688   1: aa   1: aa
2689   2: bbbb   2: bbbb
2690   3: bb   3: bb
2691    
2692  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2693  Capturing subpattern count = 0  Capturing subpattern count = 0
2694  No options  No options
2695  First char = '-'  First char = '-'
2696  Need char = '-'  Need char = '-'
2697    
2698  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2699  ------------------------------------------------------------------  ------------------------------------------------------------------
2700    0   3 Bra 0          Bra
2701    3   3 Ket          Ket
2702    6     End          End
2703  ------------------------------------------------------------------  ------------------------------------------------------------------
2704  Capturing subpattern count = 0  Capturing subpattern count = 0
2705  Options: extended  Options: extended
2706  No first char  No first char
2707  No need char  No need char
2708    
2709  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2710  ------------------------------------------------------------------  ------------------------------------------------------------------
2711    0   5 Bra 0          Bra
2712    3     a          a
2713    5   5 Ket          Ket
2714    8     End          End
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716  Capturing subpattern count = 0  Capturing subpattern count = 0
2717  Options: extended  Options: extended
2718  First char = 'a'  First char = 'a'
2719  No need char  No need char
2720    
2721  /[\s]/D  /[\s]/DZ
2722  ------------------------------------------------------------------  ------------------------------------------------------------------
2723    0  36 Bra 0          Bra
2724    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2725   36  36 Ket          Ket
2726   39     End          End
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728  Capturing subpattern count = 0  Capturing subpattern count = 0
2729  No options  No options
2730  No first char  No first char
2731  No need char  No need char
2732    
2733  /[\S]/D  /[\S]/DZ
2734  ------------------------------------------------------------------  ------------------------------------------------------------------
2735    0  36 Bra 0          Bra
2736    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2737   36  36 Ket          Ket
2738   39     End          End
2739  ------------------------------------------------------------------  ------------------------------------------------------------------
2740  Capturing subpattern count = 0  Capturing subpattern count = 0
2741  No options  No options
2742  No first char  No first char
2743  No need char  No need char
2744    
2745  /a(?i)b/D  /a(?i)b/DZ
2746  ------------------------------------------------------------------  ------------------------------------------------------------------
2747    0   9 Bra 0          Bra
2748    3     a          a
2749    5  01 Opt       01 Opt
2750    7  NC b       NC b
2751    9   9 Ket          Ket
2752   12     End          End
2753  ------------------------------------------------------------------  ------------------------------------------------------------------
2754  Capturing subpattern count = 0  Capturing subpattern count = 0
2755  No options  No options
 Case state changes  
2756  First char = 'a'  First char = 'a'
2757  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2758      ab      ab
2759   0: ab   0: ab
2760      aB      aB
2761   0: aB   0: aB
2762      *** Failers      *** Failers
2763  No match  No match
2764      AB      AB
2765  No match  No match
2766    
2767  /(a(?i)b)/D  /(a(?i)b)/DZ
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769    0  17 Bra 0          Bra
2770    3   9 Bra 1          CBra 1
2771    6     a          a
2772    8  01 Opt       01 Opt
2773   10  NC b       NC b
2774   12   9 Ket          Ket
2775   15  00 Opt       00 Opt
2776   17  17 Ket          Ket
2777   20     End          End
2778  ------------------------------------------------------------------  ------------------------------------------------------------------
2779  Capturing subpattern count = 1  Capturing subpattern count = 1
2780  No options  No options
 Case state changes  
2781  First char = 'a'  First char = 'a'
2782  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2783      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2786  Need char = 'b' (caseless)
2786      aB      aB
2787   0: aB   0: aB
2788   1: aB   1: aB
2789      *** Failers      *** Failers
2790  No match  No match
2791      AB      AB
2792  No match  No match
2793    
2794  /   (?i)abc/xD  /   (?i)abc/IxDZ
2795  ------------------------------------------------------------------  ------------------------------------------------------------------
2796    0   9 Bra 0          Bra
2797    3  NC abc       NC abc
2798    9   9 Ket          Ket
2799   12     End          End
2800  ------------------------------------------------------------------  ------------------------------------------------------------------
2801  Capturing subpattern count = 0  Capturing subpattern count = 0
2802  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2804  First char = 'a' (caseless)
2804  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2805    
2806  /#this is a comment  /#this is a comment
2807    (?i)abc/xD    (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809    0   9 Bra 0          Bra
2810    3  NC abc       NC abc
2811    9   9 Ket          Ket
2812   12     End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814  Capturing subpattern count = 0  Capturing subpattern count = 0
2815  Options: caseless extended  Options: caseless extended
2816  First char = 'a' (caseless)  First char = 'a' (caseless)
2817  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2818    
2819  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2820  ------------------------------------------------------------------  ------------------------------------------------------------------
2821    0 603 Bra 0          Bra
2822    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2823  603 603 Ket          Ket
2824  606     End          End
2825  ------------------------------------------------------------------  ------------------------------------------------------------------
2826  Capturing subpattern count = 0  Capturing subpattern count = 0
2827  No options  No options
2828  First char = '1'  First char = '1'
2829  Need char = '0'  Need char = '0'
2830    
2831  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2832  ------------------------------------------------------------------  ------------------------------------------------------------------
2833    0 603 Bra 0          Bra
2834    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2835  603 603 Ket          Ket
2836  606     End          End
2837  ------------------------------------------------------------------  ------------------------------------------------------------------
2838  Capturing subpattern count = 0  Capturing subpattern count = 0
2839  No options  No options
2840  First char = '1'  First char = '1'
2841  Need char = '0'  Need char = '0'
2842    
2843  /\Q\E/D  /\Q\E/DZ
2844  ------------------------------------------------------------------  ------------------------------------------------------------------
2845    0   3 Bra 0          Bra
2846    3   3 Ket          Ket
2847    6     End          End
2848  ------------------------------------------------------------------  ------------------------------------------------------------------
2849  Capturing subpattern count = 0  Capturing subpattern count = 0
2850  No options  No options
# Line 2837  No need char Line 2853  No need char
2853      \      \
2854   0:   0:
2855    
2856  /\Q\Ex/D  /\Q\Ex/DZ
2857  ------------------------------------------------------------------  ------------------------------------------------------------------
2858    0   5 Bra 0          Bra
2859    3     x          x
2860    5   5 Ket          Ket
2861    8     End          End
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863  Capturing subpattern count = 0  Capturing subpattern count = 0
2864  No options  No options
2865  First char = 'x'  First char = 'x'
2866  No need char  No need char
2867    
2868  / \Q\E/D  / \Q\E/DZ
2869  ------------------------------------------------------------------  ------------------------------------------------------------------
2870    0   5 Bra 0          Bra
2871    3  
2872    5   5 Ket          Ket
2873    8     End          End
2874  ------------------------------------------------------------------  ------------------------------------------------------------------
2875  Capturing subpattern count = 0  Capturing subpattern count = 0
2876  No options  No options
2877  First char = ' '  First char = ' '
2878  No need char  No need char
2879    
2880  /a\Q\E/D  /a\Q\E/DZ
2881  ------------------------------------------------------------------  ------------------------------------------------------------------
2882    0   5 Bra 0          Bra
2883    3     a          a
2884    5   5 Ket          Ket
2885    8     End          End
2886  ------------------------------------------------------------------  ------------------------------------------------------------------
2887  Capturing subpattern count = 0  Capturing subpattern count = 0
2888  No options  No options
# Line 2876  No need char Line 2892  No need char
2892   0: a   0: a
2893    bca    bca
2894   0: a   0: a
2895    bac    bac
2896   0: a   0: a
2897    
2898  /a\Q\Eb/D  /a\Q\Eb/DZ
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900    0   7 Bra 0          Bra
2901    3     ab          ab
2902    7   7 Ket          Ket
2903   10     End          End
2904  ------------------------------------------------------------------  ------------------------------------------------------------------
2905  Capturing subpattern count = 0  Capturing subpattern count = 0
2906  No options  No options
# Line 2893  Need char = 'b' Line 2909  Need char = 'b'
2909    abc    abc
2910   0: ab   0: ab
2911    
2912  /\Q\Eabc/D  /\Q\Eabc/DZ
2913  ------------------------------------------------------------------  ------------------------------------------------------------------
2914    0   9 Bra 0          Bra
2915    3     abc          abc
2916    9   9 Ket          Ket
2917   12     End          End
2918  ------------------------------------------------------------------  ------------------------------------------------------------------
2919  Capturing subpattern count = 0  Capturing subpattern count = 0
2920  No options  No options
2921  First char = 'a'  First char = 'a'
2922  Need char = 'c'  Need char = 'c'
2923    
2924  /x*+\w/D  /x*+\w/DZ
2925  ------------------------------------------------------------------  ------------------------------------------------------------------
2926    0  12 Bra 0          Bra
2927    3   5 Once          x*+
2928    6     x*          \w
2929    8   5 Ket          Ket
2930   11     \w          End
  12  12 Ket  
  15     End  
2931  ------------------------------------------------------------------  ------------------------------------------------------------------
2932  Capturing subpattern count = 0  Capturing subpattern count = 0
2933  Partial matching not supported  Partial matching not supported
# Line 2924  No need char Line 2938  No need char
2938   0: F   0: F
2939      xxxxx      xxxxx
2940  No match  No match
2941    
2942  /x?+/D  /x?+/DZ
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944    0  11 Bra 0          Bra
2945    3   5 Once          x?+
2946    6     x?          Ket
2947    8   5 Ket          End
  11  11 Ket  
  14     End  
2948  ------------------------------------------------------------------  ------------------------------------------------------------------
2949  Capturing subpattern count = 0  Capturing subpattern count = 0
2950  No options  No options
2951  No first char  No first char
2952  No need char  No need char
2953    
2954  /x++/D  /x++/DZ
2955  ------------------------------------------------------------------  ------------------------------------------------------------------
2956    0  11 Bra 0          Bra
2957    3   5 Once          x++
2958    6     x+          Ket
2959    8   5 Ket          End
  11  11 Ket  
  14     End  
2960  ------------------------------------------------------------------  ------------------------------------------------------------------
2961  Capturing subpattern count = 0  Capturing subpattern count = 0
2962  Partial matching not supported  Partial matching not supported
# Line 2954  No options Line 2964  No options
2964  First char = 'x'  First char = 'x'
2965  No need char  No need char
2966    
2967  /x{1,3}+/D  /x{1,3}+/DZ
2968  ------------------------------------------------------------------  ------------------------------------------------------------------
2969    0  15 Bra 0          Bra
2970    3   9 Once          Once
2971    6     x          x
2972    8     x{,2}          x{0,2}
2973   12   9 Ket          Ket
2974   15  15 Ket          Ket
2975   18     End          End
2976  ------------------------------------------------------------------  ------------------------------------------------------------------
2977  Capturing subpattern count = 0  Capturing subpattern count = 0
2978  Partial matching not supported  Partial matching not supported
# Line 2970  No options Line 2980  No options
2980  First char = 'x'  First char = 'x'
2981  No need char  No need char
2982    
2983  /(x)*+/D  /(x)*+/DZ
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985    0  18 Bra 0          Bra
2986    3  12 Once          Once
2987    6     Brazero          Brazero
2988    7   5 Bra 1          CBra 1
2989   10     x          x
2990   12   5 KetRmax          KetRmax
2991   15  12 Ket          Ket
2992   18  18 Ket          Ket
2993   21     End          End
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995  Capturing subpattern count = 1  Capturing subpattern count = 1
2996  No options  No options
2997  No first char  No first char
2998  No need char  No need char
2999    
3000  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3001  Capturing subpattern count = 1  Capturing subpattern count = 1
3002  Partial matching not supported  Partial matching not supported
3003  Options: anchored  Options: anchored
# Line 3000  No need char Line 3010  No need char
3010  No match  No match
3011      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3012  No match  No match
3013    
3014  /(\d++)(\w)/  /(\d++)(\w)/I
3015  Capturing subpattern count = 2  Capturing subpattern count = 2
3016  Partial matching not supported  Partial matching not supported
3017  No options  No options
# Line 3013  No need char Line 3023  No need char
3023   2: a   2: a
3024      *** Failers      *** Failers
3025  No match  No match
3026      12345+      12345+
3027  No match  No match
3028    
3029  /a++b/  /a++b/I
3030  Capturing subpattern count = 0  Capturing subpattern count = 0
3031  Partial matching not supported  Partial matching not supported
3032  No options  No options
# Line 3025  Need char = 'b' Line 3035  Need char = 'b'
3035      aaab      aaab
3036   0: aaab   0: aaab
3037    
3038  /(a++b)/  /(a++b)/I
3039  Capturing subpattern count = 1  Capturing subpattern count = 1
3040  Partial matching not supported  Partial matching not supported
3041  No options  No options
# Line 3035  Need char = 'b' Line 3045  Need char = 'b'
3045   0: aaab   0: aaab
3046   1: aaab   1: aaab
3047    
3048  /(a++)b/  /(a++)b/I
3049  Capturing subpattern count = 1  Capturing subpattern count = 1
3050  Partial matching not supported  Partial matching not supported
3051  No options  No options
# Line 3045  Need char = 'b' Line 3055  Need char = 'b'
3055   0: aaab   0: aaab
3056   1: aaa   1: aaa
3057    
3058  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3059  Capturing subpattern count = 1  Capturing subpattern count = 1
3060  Partial matching not supported  Partial matching not supported
3061  No options  No options
# Line 3054  No need char Line 3064  No need char
3064      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3065   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3066   1: x   1: x
3067    
3068  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3069  Capturing subpattern count = 1  Capturing subpattern count = 1
3070  Partial matching not supported  Partial matching not supported
3071  No options  No options
# Line 3069  Need char = ')' Line 3079  Need char = ')'
3079   1: xyz   1: xyz
3080      *** Failers      *** Failers
3081  No match  No match
3082      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3083  No match  No match
3084    
3085  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3086  ------------------------------------------------------------------  ------------------------------------------------------------------
3087    0  53 Bra 0          Bra
3088    3  47 Once          Once
3089    6   9 Bra 1          CBra 1
3090    9     abc          abc
3091   15   9 Ket          Ket
3092   18     Brazero          Brazero
3093   19  28 Bra 0          Bra
3094   22   9 Bra 1          CBra 1
3095   25     abc          abc
3096   31   9 Ket          Ket
3097   34     Brazero          Brazero
3098   35   9 Bra 1          CBra 1
3099   38     abc          abc
3100   44   9 Ket          Ket
3101   47  28 Ket          Ket
3102   50  47 Ket          Ket
3103   53  53 Ket          Ket
3104   56     End          End
3105  ------------------------------------------------------------------  ------------------------------------------------------------------
3106  Capturing subpattern count = 1  Capturing subpattern count = 1
3107  No options  No options
3108  First char = 'a'  First char = 'a'
3109  Need char = 'c'  Need char = 'c'
3110    
3111  /a+?+/  /a+?+/I
3112  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3113    
3114  /a{2,3}?+b/  /a{2,3}?+b/I
3115  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3116    
3117  /(?U)a+?+/  /(?U)a+?+/I
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /a{2,3}?+b/U  /a{2,3}?+b/IU
3121  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3122    
3123  /x(?U)a++b/D  /x(?U)a++b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  15 Bra 0          Bra
3126    3     x          x
3127    5   5 Once          a++
3128    8     a+          b
3129   10   5 Ket          Ket
3130   13     b          End
  15  15 Ket  
  18     End  
3131  ------------------------------------------------------------------  ------------------------------------------------------------------
3132  Capturing subpattern count = 0  Capturing subpattern count = 0
3133  Partial matching not supported  Partial matching not supported
# Line 3129  Need char = 'b' Line 3137  Need char = 'b'
3137      xaaaab      xaaaab
3138   0: xaaaab   0: xaaaab
3139    
3140  /(?U)xa++b/D  /(?U)xa++b/DZ
3141  ------------------------------------------------------------------  ------------------------------------------------------------------
3142    0  15 Bra 0          Bra
3143    3     x          x
3144    5   5 Once          a++
3145    8     a+          b
3146   10   5 Ket          Ket
3147   13     b          End
  15  15 Ket  
  18     End  
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149  Capturing subpattern count = 0  Capturing subpattern count = 0
3150  Partial matching not supported  Partial matching not supported
# Line 3148  Need char = 'b' Line 3154  Need char = 'b'
3154      xaaaab      xaaaab
3155   0: xaaaab   0: xaaaab
3156    
3157  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3158  ------------------------------------------------------------------  ------------------------------------------------------------------
3159    0 106 Bra 0          Bra
3160    3     ^          ^
3161    4  99 Bra 1          CBra 1
3162    7   5 Bra 2          CBra 2
3163   10     a+          a+
3164   12   5 Ket          Ket
3165   15  37 Bra 3          CBra 3
3166   18     [ab]+?          [ab]+?
3167   52  37 Ket          Ket
3168   55  37 Bra 4          CBra 4
3169   58     [bc]+          [bc]+
3170   92  37 Ket          Ket
3171   95   5 Bra 5          CBra 5
3172   98     \w*          \w*
3173  100   5 Ket          Ket
3174  103  99 Ket          Ket
3175  106 106 Ket          Ket
3176  109     End          End
3177  ------------------------------------------------------------------  ------------------------------------------------------------------
3178  Capturing subpattern count = 5  Capturing subpattern count = 5
3179  Partial matching not supported  Partial matching not supported
# Line 3175  Options: anchored Line 3181  Options: anchored
3181  No first char  No first char
3182  No need char  No need char
3183    
3184  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186    0  10 Bra 0          Bra
3187    3     ^          ^
3188    4     x          x
3189    6     a+?          a++
3190    8     b          b
3191   10  10 Ket          Ket
3192   13     End          End
3193  ------------------------------------------------------------------  ------------------------------------------------------------------
3194  Capturing subpattern count = 0  Capturing subpattern count = 0
3195  Partial matching not supported  Partial matching not supported
# Line 3191  Options: anchored Line 3197  Options: anchored
3197  No first char  No first char
3198  Need char = 'b'  Need char = 'b'
3199    
3200  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3201  ------------------------------------------------------------------  ------------------------------------------------------------------
3202    0  16 Bra 0          Bra
3203    3     ^          ^
3204    4     x          x
3205    6   5 Bra 1          CBra 1
3206    9     a+?          a+?
3207   11   5 Ket          Ket
3208   14     b          b
3209   16  16 Ket          Ket
3210   19     End          End
3211  ------------------------------------------------------------------  ------------------------------------------------------------------
3212  Capturing subpattern count = 1  Capturing subpattern count = 1
3213  Partial matching not supported  Partial matching not supported
# Line 3209  Options: anchored Line 3215  Options: anchored
3215  No first char  No first char
3216  Need char = 'b'  Need char = 'b'
3217    
3218  /[.x.]/  /[.x.]/I
3219  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3220    
3221  /[=x=]/  /[=x=]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[:x:]/  /[:x:]/I
3225  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3226    
3227  /\l/  /\l/I
3228  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3229    
3230  /\L/  /\L/I
3231  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3232    
3233  /\N{name}/  /\N{name}/I
3234  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3235    
3236  /\u/  /\u/I
3237  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3238    
3239  /\U/  /\U/I
3240  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3241    
3242  /[/  /[/I
3243  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3244    
3245  /[a-/  /[a-/I
3246  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3247    
3248  /[[:space:]/  /[[:space:]/I
3249  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3250    
3251  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3252  ------------------------------------------------------------------  ------------------------------------------------------------------
3253    0  36 Bra 0          Bra
3254    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3255   36  36 Ket          Ket
3256   39     End          End
3257  ------------------------------------------------------------------  ------------------------------------------------------------------
3258  Capturing subpattern count = 0  Capturing subpattern count = 0
3259  No options  No options
3260  No first char  No first char
3261  No need char  No need char
3262    
3263  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3264  ------------------------------------------------------------------  ------------------------------------------------------------------
3265    0  36 Bra 0          Bra
3266    3     [\x09-\x0d ]          [\x09-\x0d ]
3267   36  36 Ket          Ket
3268   39     End          End
3269  ------------------------------------------------------------------  ------------------------------------------------------------------
3270  Capturing subpattern count = 0  Capturing subpattern count = 0
3271  No options  No options
3272  No first char  No first char
3273  No need char  No need char
3274    
3275  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3276  ------------------------------------------------------------------  ------------------------------------------------------------------
3277    0  36 Bra 0          Bra
3278    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3279   36  36 Ket          Ket
3280   39     End          End
3281  ------------------------------------------------------------------  ------------------------------------------------------------------
3282  Capturing subpattern count = 0  Capturing subpattern count = 0
3283  No options  No options
3284  No first char  No first char
3285  No need char  No need char
3286    
3287  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3288  Capturing subpattern count = 0  Capturing subpattern count = 0
3289  Partial matching not supported  Partial matching not supported
3290  Options: extended  Options: extended
# Line 3295  Need char = '>' Line 3298  Need char = '>'
3298   0: <abc <123> hij>   0: <abc <123> hij>
3299      <abc <def> hij>      <abc <def> hij>
3300   0: <def>   0: <def>
3301      <abc<>def>      <abc<>def>
3302   0: <abc<>def>   0: <abc<>def>
3303      <abc<>      <abc<>
3304   0: <>   0: <>
3305      *** Failers      *** Failers
3306  No match  No match
3307      <abc      <abc
3308  No match  No match
3309    
3310  |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  
3311  ------------------------------------------------------------------  ------------------------------------------------------------------
3312    0 822 Bra 0          Bra
3313    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
3314  821     \b          \b
3315  822 822 Ket          Ket
3316  825     End          End
3317  ------------------------------------------------------------------  ------------------------------------------------------------------
3318  Capturing subpattern count = 0  Capturing subpattern count = 0
3319  No options  No options
3320  First char = '8'  First char = '8'
3321  Need char = 'X'  Need char = 'X'
3322    
3323  |\$\<\.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  
3324  ------------------------------------------------------------------  ------------------------------------------------------------------
3325    0 812 Bra 0          Bra
3326    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
3327  811     \b          \b
3328  812 812 Ket          Ket
3329  815     End          End
3330  ------------------------------------------------------------------  ------------------------------------------------------------------
3331  Capturing subpattern count = 0  Capturing subpattern count = 0
3332  No options  No options
# Line 3344  No need char Line 3345  No need char
3345  Capturing subpattern count = 1  Capturing subpattern count = 1
3346  Partial matching not supported  Partial matching not supported
3347  No options  No options
3348  First char at start or follows \n  First char at start or follows newline
3349  No need char  No need char
3350    
3351  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
3353  Max back reference = 1  Max back reference = 1
# Line 3367  Capturing subpattern count = 2 Line 3368  Capturing subpattern count = 2
3368  Max back reference = 2  Max back reference = 2
3369  Partial matching not supported  Partial matching not supported
3370  No options  No options
3371  First char at start or follows \n  First char at start or follows newline
3372  Need char = 'z'  Need char = 'z'
3373    
3374  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3381  No need char Line 3382  No need char
3382   0: bc123bc   0: bc123bc
3383   1: bc   1: bc
3384   2: bc   2: bc
3385    
3386  /a[b]/I  /a[b]/I
3387  Capturing subpattern count = 0  Capturing subpattern count = 0
3388  No options  No options
# Line 3395  No options Line 3396  No options
3396  First char = 'a'  First char = 'a'
3397  No need char  No need char
3398    
3399  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3400  Capturing subpattern count = 0  Capturing subpattern count = 0
3401  Options: caseless  Options: caseless
3402  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3405  Need char = 'z' (caseless)
3405  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3406  Capturing subpattern count = 0  Capturing subpattern count = 0
3407  No options  No options
 Case state changes  
3408  First char = 'a'  First char = 'a'
3409  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3410    
# Line 3438  No options Line 3438  No options
3438  No first char  No first char
3439  Need char = 'a'  Need char = 'a'
3440    
3441  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3442  Capturing subpattern count = 0  Capturing subpattern count = 1
3443  No options  No options
3444  First char = 'a'  First char = 'a'
3445  No need char  No need char
3446    
3447  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3448  Capturing subpattern count = 0  Capturing subpattern count = 1
3449  No options  No options
3450  First char = 'a'  First char = 'a'
3451  Need char = 'z'  Need char = 'z'
3452    
3453  /(?(1)abz)/I  /(?(1)abz)(.)/I
3454  Capturing subpattern count = 0  Capturing subpattern count = 1
3455  No options  No options
3456  No first char  No first char
3457  No need char  No need char
3458    
3459  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3460  Capturing subpattern count = 0  Capturing subpattern count = 1
3461  No options  No options
3462  No first char  No first char
3463  Need char = '3'  Need char = '3'
# Line 3524  No options Line 3524  No options
3524  First char = 'a'  First char = 'a'
3525  Need char = 'b'  Need char = 'b'
3526    
3527  /^a/mI  /^a/Im
3528  Capturing subpattern count = 0  Capturing subpattern count = 0
3529  Options: multiline  Options: multiline
3530  First char at start or follows \n  First char at start or follows newline
3531  Need char = 'a'  Need char = 'a'
3532    abcde    abcde
3533   0: a   0: a
3534    xy\nabc    xy\nabc
3535   0: a   0: a
3536    *** Failers    *** Failers
3537  No match  No match
3538    xyabc    xyabc
3539  No match  No match
3540    
3541  /c|abc/I  /c|abc/I
# Line 3554  Starting byte set: A B a b Line 3554  Starting byte set: A B a b
3554  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3555  Capturing subpattern count = 0  Capturing subpattern count = 0
3556  No options  No options
 Case state changes  
3557  No first char  No first char
3558  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3559  Starting byte set: a b  Starting byte set: a b
3560    
3561  /abc(?C)def/  /abc(?C)def/I
3562  Capturing subpattern count = 0  Capturing subpattern count = 0
3563  No options  No options
3564  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3567  Need char = 'f'
3567  --->abcdef  --->abcdef
3568    0 ^  ^       d    0 ^  ^       d
3569   0: abcdef   0: abcdef
3570      1234abcdef      1234abcdef
3571  --->1234abcdef  --->1234abcdef
3572    0     ^  ^       d    0     ^  ^       d
3573   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3575  Need char = 'f'
3575  No match  No match
3576      abcxyz      abcxyz
3577  No match  No match
3578      abcxyzf      abcxyzf
3579  --->abcxyzf  --->abcxyzf
3580    0 ^  ^        d    0 ^  ^        d
3581  No match  No match
3582    
3583  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3584  Capturing subpattern count = 0  Capturing subpattern count = 0
3585  No options  No options
3586  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3590  Need char = 'f'
3590    0    ^  ^       d    0    ^  ^       d
3591    1    ^    ^     f    1    ^    ^     f
3592   0: abcdef   0: abcdef
3593    
3594  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3595  Capturing subpattern count = 0  Capturing subpattern count = 0
3596  No options  No options
3597  No first char  No first char
# Line 3607  Need char = 'f' Line 3606  Need char = 'f'
3606   0: 4abcdef   0: 4abcdef
3607      *** Failers      *** Failers
3608  No match  No match
3609      abcdef      abcdef
3610  --->abcdef  --->abcdef
3611    1 ^          \d    1 ^          \d
3612    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3615  No match
3615    1     ^      \d    1     ^      \d
3616    1      ^     \d    1      ^     \d
3617  No match  No match
3618    
3619  /(?C255)ab/  /(?C255)ab/I
3620  Capturing subpattern count = 0  Capturing subpattern count = 0
3621  No options  No options
3622  First char = 'a'  First char = 'a'
3623  Need char = 'b'  Need char = 'b'
3624    
3625  /(?C256)ab/  /(?C256)ab/I
3626  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3627    
3628  /(?Cab)xx/  /(?Cab)xx/I
3629  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3630    
3631  /(?C12vr)x/  /(?C12vr)x/I
3632  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3633    
3634  /abc(?C)def/  /abc(?C)def/I
3635  Capturing subpattern count = 0  Capturing subpattern count = 0
3636  No options  No options
3637  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3643  No match
3643    0         ^  ^       d    0         ^  ^       d
3644   0: abcdef   0: abcdef
3645    
3646  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3647  Capturing subpattern count = 1  Capturing subpattern count = 1
3648  No options  No options
3649  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3654  Need char = 'f'
3654    1    ^    ^     f    1    ^    ^     f
3655   0: abcdef   0: abcdef
3656   1: abc   1: abc
3657      123abcdef\C+      123abcdef\C+
3658  Callout 0: last capture = 1  Callout 0: last capture = 1
3659   0: <unset>   0: <unset>
3660   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3667  Callout 1: last capture = 1
3667         ^    ^     f         ^    ^     f
3668   0: abcdef   0: abcdef
3669   1: abc   1: abc
3670      123abcdef\C-      123abcdef\C-
3671   0: abcdef   0: abcdef
3672   1: abc   1: abc
3673      *** Failers      *** Failers
3674  No match  No match
3675      123abcdef\C!1      123abcdef\C!1
3676  --->123abcdef  --->123abcdef
3677    0    ^  ^       d    0    ^  ^       d
3678    1    ^    ^     f    1    ^    ^     f
3679  No match  No match
3680    
3681  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3682  Capturing subpattern count = 1  Capturing subpattern count = 1
3683  No options  No options
3684  No first char  No first char
# Line 3692  No need char Line 3691  No need char
3691    1 ^        ^    )    1 ^        ^    )
3692   0: abcabcabc   0: abcabcabc
3693   1: abc   1: abc
3694      abcabc\C!1!3      abcabc\C!1!3
3695  --->abcabc  --->abcabc
3696    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3697    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3702  No need char
3702  --->*** Failers  --->*** Failers
3703    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3704   0:   0:
3705      abcabcabc\C!1!3      abcabcabc\C!1!3
3706  --->abcabcabc  --->abcabcabc
3707    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3708    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3711  No need char
3711   0: abcabc   0: abcabc
3712   1: abc   1: abc
3713    
3714  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3715  Capturing subpattern count = 1  Capturing subpattern count = 1
3716  Partial matching not supported  Partial matching not supported
3717  No options  No options
# Line 3737  Callout 0: last capture = 1 Line 3736  Callout 0: last capture = 1
3736      ^     ^    )      ^     ^    )
3737   0: 123456   0: 123456
3738   1: 456   1: 456
3739      123456789\C+      123456789\C+
3740  Callout 0: last capture = -1  Callout 0: last capture = -1
3741   0: <unset>   0: <unset>
3742  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3754  Callout 0: last capture = 1
3754   0: 123456789   0: 123456789
3755   1: 789   1: 789
3756    
3757  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3758  Capturing subpattern count = 2  Capturing subpattern count = 2
3759  No options  No options
3760  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3773  Callout 1: last capture = -1
3773   0: xyzabc   0: xyzabc
3774   1: xyzabc   1: xyzabc
3775    
3776  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3777  Capturing subpattern count = 3  Capturing subpattern count = 3
3778  No options  No options
3779  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3795  Callout 1: last capture = 1
3795   1: X   1: X
3796   2: xyzabc   2: xyzabc
3797    
3798  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3799  Capturing subpattern count = 1  Capturing subpattern count = 1
3800  No options  No options
3801  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3808  Callout 0: last capture = 1
3808      ^          a      ^          a
3809   0: abcdef   0: abcdef
3810   1: abc   1: abc
3811    
3812  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3813  Capturing subpattern count = 1  Capturing subpattern count = 1
3814  No options  No options
3815  First char = 'a'  First char = 'a'
3816  Need char = 'z'  Need char = 'z'
3817      abcxyz\C+      abcxyz\C+
3818  Callout 1: last capture = 1  Callout 1: last capture = 1
3819   0: <unset>   0: <unset>
3820   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3826  Callout 2: last capture = -1
3826      ^          a      ^          a
3827   0: abcxyz   0: abcxyz
3828    
3829  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3830  Capturing subpattern count = 1  Capturing subpattern count = 1
3831  No options  No options
3832  First char = 'x'  First char = 'x'
# Line 3840  Callout 0: last capture = 1 Line 3839  Callout 0: last capture = 1
3839         ^       )         ^       )
3840   0: xyz   0: xyz
3841   1: abc   1: abc
3842    
3843  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3844  Capturing subpattern count = 2  Capturing subpattern count = 2
3845  Partial matching not supported  Partial matching not supported
3846  No options  No options
# Line 3867  Callout data = 1 Line 3866  Callout data = 1
3866  Callout data = 1  Callout data = 1
3867  No match  No match
3868    
3869  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3870  Capturing subpattern count = 2  Capturing subpattern count = 2
3871  Partial matching not supported  Partial matching not supported
3872  No options  No options
# Line 3892  Callout data = 1 Line 3891  Callout data = 1
3891    1 ^        ^    1 ^        ^
3892  Callout data = 1  Callout data = 1
3893  No match  No match
3894    
3895  /(?C)abc/  /(?C)abc/I
3896  Capturing subpattern count = 0  Capturing subpattern count = 0
3897  No options  No options
3898  First char = 'a'  First char = 'a'
3899  Need char = 'c'  Need char = 'c'
3900    
3901  /(?C)^abc/  /(?C)^abc/I
3902  Capturing subpattern count = 0  Capturing subpattern count = 0
3903  Options: anchored  Options: anchored
3904  No first char  No first char
3905  No need char  No need char
3906    
3907  /(?C)a|b/S  /(?C)a|b/IS
3908  Capturing subpattern count = 0  Capturing subpattern count = 0
3909  No options  No options
3910  No first char  No first char
3911  No need char  No need char
3912  Starting byte set: a b  Starting byte set: a b
3913    
3914  /(?R)/  /(?R)/I
3915  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3916    
3917  /(a|(?R))/  /(a|(?R))/I
3918  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3919    
3920  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3921  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3922    
3923  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3924  Capturing subpattern count = 3  Capturing subpattern count = 3
3925  No options  No options
3926  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3949  No need char
3949   3: xxab   3: xxab
3950      *** Failers      *** Failers
3951  No match  No match
3952      xyab      xyab
3953  No match  No match
3954    
3955  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3956  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3957    
3958  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3959  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3960    
3961  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3962  Capturing subpattern count = 1  Capturing subpattern count = 1
3963  Options: anchored  Options: anchored
3964  No first char  No first char
# Line 3970  No need char Line 3969  No need char
3969      a(b)c      a(b)c
3970   0: a(b)c   0: a(b)c
3971   1: c   1: c
3972      a(b(c))d      a(b(c))d
3973   0: a(b(c))d   0: a(b(c))d
3974   1: d   1: d
3975      *** Failers)      *** Failers)
3976  No match  No match
3977      a(b(c)d      a(b(c)d
3978  No match  No match
3979    
3980  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3981  Capturing subpattern count = 1  Capturing subpattern count = 1
3982  Options: anchored  Options: anchored
3983  No first char  No first char
# Line 3993  Need char = '<' Line 3992  Need char = '<'
3992   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3993   1: (1(2)3)   1: (1(2)3)
3994    
3995  /(a(?1)b)/D  /(a(?1)b)/DZ
3996  ------------------------------------------------------------------  ------------------------------------------------------------------
3997    0  16 Bra 0          Bra
3998    3  10 Bra 1          CBra 1
3999    6     a          a
4000    8   3 Recurse          Once
4001   11     b          Recurse
4002   13  10 Ket          Ket
4003   16  16 Ket          b
4004   19     End          Ket
4005            Ket
4006            End
4007  ------------------------------------------------------------------  ------------------------------------------------------------------
4008  Capturing subpattern count = 1  Capturing subpattern count = 1
4009  No options  No options
4010  First char = 'a'  First char = 'a'
4011  Need char = 'b'  Need char = 'b'
4012    
4013  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4014  ------------------------------------------------------------------  ------------------------------------------------------------------
4015    0  22 Bra 0          Bra
4016    3  16 Bra 1          CBra 1
4017    6     a          a
4018    8   6 Bra 0          Once
4019   11   3 Recurse          Recurse
4020   14   6 KetRmax          KetRmax
4021   17     b          b
4022   19  16 Ket          Ket
4023   22  22 Ket          Ket
4024   25     End          End
4025  ------------------------------------------------------------------  ------------------------------------------------------------------
4026  Capturing subpattern count = 1  Capturing subpattern count = 1
4027  No options  No options
4028  First char = 'a'  First char = 'a'
4029  Need char = 'b'  Need char = 'b'
4030    
4031  /^\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
4032  Capturing subpattern count = 4  Capturing subpattern count = 4
4033  Max back reference = 4  Max back reference = 4
4034  Partial matching not supported  Partial matching not supported
# Line 4050  No need char Line 4051  No need char
4051   2: <unset>   2: <unset>
4052   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4053   4: A   4: A
4054      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4055   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4056   1: <unset>   1: <unset>
4057   2: <unset>   2: <unset>
# Line 4058  No need char Line 4059  No need char
4059   4: A   4: A
4060      *** Failers      *** Failers
4061  No match  No match
4062      The quick brown fox      The quick brown fox
4063  No match  No match
4064    
4065  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4066  Capturing subpattern count = 2  Capturing subpattern count = 2
4067  Partial matching not supported  Partial matching not supported
4068  Options: anchored  Options: anchored
# Line 4081  No need char Line 4082  No need char
4082  No match  No match
4083      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4084  No match  No match
4085    
4086  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4087  Capturing subpattern count = 2  Capturing subpattern count = 2
4088  Options: anchored  Options: anchored
4089  No first char  No first char
# Line 4091  No need char Line 4092  No need char
4092   0: xyz   0: xyz
4093   1: xyz   1: xyz
4094   2: y   2: y
4095      xxyzxyzz      xxyzxyzz
4096   0: xxyzxyzz   0: xxyzxyzz
4097   1: xxyzxyzz   1: xxyzxyzz
4098   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 4100  No need char
4100  No match  No match
4101      xxyzz      xxyzz
4102  No match  No match
4103      xxyzxyzxyzz      xxyzxyzxyzz
4104  No match  No match
4105    
4106  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4107  Capturing subpattern count = 2  Capturing subpattern count = 2
4108  Partial matching not supported  Partial matching not supported
4109  Options: extended  Options: extended
# Line 4124  Need char = '>' Line 4125  Need char = '>'
4125   0: <def>   0: <def>
4126   1: <def>   1: <def>
4127   2: <def>   2: <def>
4128      <abc<>def>      <abc<>def>
4129   0: <abc<>def>   0: <abc<>def>
4130   1: <abc<>def>   1: <abc<>def>
4131   2: <abc<>def>   2: <abc<>def>
4132      <abc<>      <abc<>
4133   0: <>   0: <>
4134   1: <>   1: <>
4135   2: <>   2: <>
# Line 4137  No match Line 4138  No match
4138      <abc      <abc
4139  No match  No match
4140    
4141  /(?1)/  /(?1)/I
4142  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4143    
4144  /((?2)(abc)/  /((?2)(abc)/I
4145  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4146    
4147  /^(abc)def(?1)/  /^(abc)def(?1)/I
4148  Capturing subpattern count = 1  Capturing subpattern count = 1
4149  Options: anchored  Options: anchored
4150  No first char  No first char
# Line 4152  No need char Line 4153  No need char
4153   0: abcdefabc   0: abcdefabc
4154   1: abc   1: abc
4155    
4156  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4157  Capturing subpattern count = 1  Capturing subpattern count = 1
4158  Options: anchored  Options: anchored
4159  No first char  No first char
# Line 4163  No need char Line 4164  No need char
4164      a=b      a=b
4165   0: a=b   0: a=b
4166   1: a   1: a
4167      a=bc      a=bc
4168   0: a=bc   0: a=bc
4169   1: a   1: a
4170    
4171  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4172  Capturing subpattern count = 2  Capturing subpattern count = 2
4173  Options: anchored  Options: anchored
4174  No first char  No first char
# Line 4180  No need char Line 4181  No need char
4181   0: a=b   0: a=b
4182   1: a   1: a
4183   2: b   2: b
4184      a=bc      a=bc
4185   0: a=bc   0: a=bc
4186   1: a   1: a
4187   2: c   2: c
4188    
4189  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4190  ------------------------------------------------------------------  ------------------------------------------------------------------
4191    0  28 Bra 0          Bra
4192    3     a          a
4193    5   5 Bra 1          CBra 1
4194    8     b          b
4195   10   5 Alt          Alt
4196   13     c          c
4197   15  10 Ket          Ket
4198   18     d          d
4199   20   5 Bra 2          CBra 2
4200   23     e          e
4201   25   5 Ket          Ket
4202   28  28 Ket          Ket
4203   31     End          End
4204  ------------------------------------------------------------------  ------------------------------------------------------------------
4205  Capturing subpattern count = 2  Capturing subpattern count = 2
4206  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4212  Need char = 'e' Line 4213  Need char = 'e'
4213   0: abde   0: abde
4214   1: b   1: b
4215   2: e   2: e
4216      acde      acde
4217   0: acde   0: acde
4218   1: c   1: c
4219   2: e   2: e
4220    
4221  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4222  ------------------------------------------------------------------  ------------------------------------------------------------------
4223    0  35 Bra 0          Bra
4224    3  21 Bra 0          Bra
4225    6     a          a
4226    8  13 Bra 1          CBra 1
4227   11     c          c
4228   13   5 Bra 2          CBra 2
4229   16     d          d
4230   18   5 Ket          Ket
4231   21  13 Ket          Ket
4232   24  21 Ket          Ket
4233   27   5 Bra 3          CBra 3
4234   30     a          a
4235   32   5 Ket          Ket
4236   35  35 Ket          Ket
4237   38     End          End
4238  ------------------------------------------------------------------  ------------------------------------------------------------------
4239  Capturing subpattern count = 3  Capturing subpattern count = 3
4240  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4244  No options Line 4245  No options
4245  First char = 'a'  First char = 'a'
4246  Need char = 'a'  Need char = 'a'
4247    
4248  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4249  ------------------------------------------------------------------  ------------------------------------------------------------------
4250    0  28 Bra 0          Bra
4251    3   5 Bra 1          CBra 1
4252    6     a          a
4253    8   5 Ket          Ket
4254   11     Any          Any
4255   12     Any          Any
4256   13     Any          Any
4257   14     \1          \1
4258   17     bbb          bbb
4259   23   3 Recurse          Once
4260   26     d          Recurse
4261   28  28 Ket          Ket
4262   31     End          d
4263            Ket
4264            End
4265  ------------------------------------------------------------------  ------------------------------------------------------------------
4266  Capturing subpattern count = 1  Capturing subpattern count = 1
4267  Max back reference = 1  Max back reference = 1
# Line 4268  No options Line 4271  No options
4271  First char = 'a'  First char = 'a'
4272  Need char = 'd'  Need char = 'd'
4273    
4274  /^\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
4275  Capturing subpattern count = 4  Capturing subpattern count = 4
4276  Max back reference = 4  Max back reference = 4
4277  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4296  No need char Line 4299  No need char
4299   2: <unset>   2: <unset>
4300   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4301   4: A   4: A
4302      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4303   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4304   1: <unset>   1: <unset>
4305   2: <unset>   2: <unset>
# Line 4304  No need char Line 4307  No need char
4307   4: A   4: A
4308      *** Failers      *** Failers
4309  No match  No match
4310      The quick brown fox      The quick brown fox
4311  No match  No match
4312    
4313  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4314  Capturing subpattern count = 1  Capturing subpattern count = 1
4315  Max back reference = 1  Max back reference = 1
4316  No options  No options
# Line 4316  No need char Line 4319  No need char
4319    bb    bb
4320   0: bb   0: bb
4321   1: b   1: b
4322    bbaa    bbaa
4323   0: bba   0: bba
4324   1: b   1: b
4325    
4326  /(.*)a/sI  /(.*)a/Is
4327  Capturing subpattern count = 1  Capturing subpattern count = 1
4328  Partial matching not supported  Partial matching not supported
4329  Options: anchored dotall  Options: anchored dotall
4330  No first char  No first char
4331  Need char = 'a'  Need char = 'a'
4332    
4333  /(.*)a\1/sI  /(.*)a\1/Is
4334  Capturing subpattern count = 1  Capturing subpattern count = 1
4335  Max back reference = 1  Max back reference = 1
4336  Partial matching not supported  Partial matching not supported
# Line 4335  Options: dotall Line 4338  Options: dotall
4338  No first char  No first char
4339  Need char = 'a'  Need char = 'a'
4340    
4341  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4342  Capturing subpattern count = 2  Capturing subpattern count = 2
4343  Max back reference = 2  Max back reference = 2
4344  Partial matching not supported  Partial matching not supported
# Line 4343  Options: anchored dotall Line 4346  Options: anchored dotall
4346  No first char  No first char
4347  Need char = 'b'  Need char = 'b'
4348    
4349  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4350  Capturing subpattern count = 3  Capturing subpattern count = 3
4351  Partial matching not supported  Partial matching not supported
4352  Options: anchored dotall  Options: anchored dotall
4353  No first char  No first char
4354  Need char = 'z'  Need char = 'z'
4355    
4356  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4357  Capturing subpattern count = 3  Capturing subpattern count = 3
4358  Max back reference = 1  Max back reference = 1
4359  Partial matching not supported  Partial matching not supported
# Line 4358  Options: dotall Line 4361  Options: dotall
4361  No first char  No first char
4362  Need char = 'z'  Need char = 'z'
4363    
4364  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4365  Capturing subpattern count = 3  Capturing subpattern count = 3
4366  Max back reference = 2  Max back reference = 2
4367  Partial matching not supported  Partial matching not supported
# Line 4366  Options: dotall Line 4369  Options: dotall
4369  No first char  No first char
4370  Need char = 'z'  Need char = 'z'
4371    
4372  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4373  Capturing subpattern count = 3  Capturing subpattern count = 3
4374  Max back reference = 3  Max back reference = 3
4375  Partial matching not supported  Partial matching not supported
# Line 4374  Options: dotall Line 4377  Options: dotall
4377  No first char  No first char
4378  Need char = 'z'  Need char = 'z'
4379    
4380  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4381  Capturing subpattern count = 3  Capturing subpattern count = 3
4382  Max back reference = 3  Max back reference = 3
4383  Partial matching not supported  Partial matching not supported
# Line 4382  Options: anchored dotall Line 4385  Options: anchored dotall
4385  No first char  No first char
4386  Need char = 'z'  Need char = 'z'
4387    
4388  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4389  Capturing subpattern count = 31  Capturing subpattern count = 31
4390  Partial matching not supported  Partial matching not supported
4391  Options: anchored dotall  Options: anchored dotall
4392  No first char  No first char
4393  No need char  No need char
4394    
4395  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(