/[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 454 by ph10, Tue Sep 22 09:42:11 2009 UTC
# Line 1  Line 1 
1  PCRE version 6.2 01-Aug-2005  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
15  No first char  No first char
16  No need char  No need char
17    
18  /abc/  /abc/I
19  Capturing subpattern count = 0  Capturing subpattern count = 0
20  No options  No options
21  First char = 'a'  First char = 'a'
# Line 24  No match Line 33  No match
33      ABC      ABC
34  No match  No match
35    
36  /^abc/  /^abc/I
37  Capturing subpattern count = 0  Capturing subpattern count = 0
38  Options: anchored  Options: anchored
39  No first char  No first char
# Line 40  No match Line 49  No match
49      \Adefabc      \Adefabc
50  No match  No match
51    
52  /a+bc/  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
75    
76  /^abc$/  /^abc$/I
77  Capturing subpattern count = 0  Capturing subpattern count = 0
78  Options: anchored  Options: anchored
79  No first char  No first char
# Line 80  No match Line 85  No match
85      def\nabc      def\nabc
86  No match  No match
87    
88  /ab\gdef/X  /ab\idef/X
89  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
90    
91  /(?X)ab\gdef/X  /(?X)ab\idef/X
92  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
93    
94  /x{5,4}/  /x{5,4}/
# Line 111  Failed: missing ) at offset 4 Line 116  Failed: missing ) at offset 4
116  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
117    
118  /(?z)abc/  /(?z)abc/
119  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
120    
121  /.*b/  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows \n  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows \n  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
132    
133  /cat|dog|elephant/  /cat|dog|elephant/I
134  Capturing subpattern count = 0  Capturing subpattern count = 0
135  No options  No options
136  No first char  No first char
# Line 137  No need char Line 140  No need char
140      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
141   0: elephant   0: elephant
142    
143  /cat|dog|elephant/S  /cat|dog|elephant/IS
144  Capturing subpattern count = 0  Capturing subpattern count = 0
145  No options  No options
146  No first char  No first char
# Line 148  Starting byte set: c d e Line 151  Starting byte set: c d e
151      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
152   0: elephant   0: elephant
153    
154  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
155  Capturing subpattern count = 0  Capturing subpattern count = 0
156  Options: caseless  Options: caseless
157  No first char  No first char
# Line 159  Starting byte set: C D E c d e Line 162  Starting byte set: C D E c d e
162      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
163   0: elephant   0: elephant
164    
165  /a|[bcd]/S  /a|[bcd]/IS
166  Capturing subpattern count = 0  Capturing subpattern count = 0
167  No options  No options
168  No first char  No first char
169  No need char  No need char
170  Starting byte set: a b c d  Starting byte set: a b c d
171    
172  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
173  Capturing subpattern count = 1  Capturing subpattern count = 1
174  No options  No options
175  No first char  No first char
# Line 186  Starting byte set: \x00 \x01 \x02 \x03 \ Line 189  Starting byte set: \x00 \x01 \x02 \x03 \
189    \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
190    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
191    
192  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
193  Capturing subpattern count = 1  Capturing subpattern count = 1
194  No options  No options
195  No first char  No first char
# Line 199  Failed: reference to non-existent subpat Line 202  Failed: reference to non-existent subpat
202  /{4,5}abc/  /{4,5}abc/
203  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
204    
205  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
206  Capturing subpattern count = 3  Capturing subpattern count = 3
207  Max back reference = 2  Max back reference = 2
208  No options  No options
# Line 224  Matched, but too many substrings Line 227  Matched, but too many substrings
227   0: abcb   0: abcb
228   1: a   1: a
229   2: b   2: b
230      \O12abcb      \O12abcb
231   0: abcb   0: abcb
232   1: a   1: a
233   2: b   2: b
234   3: c   3: c
235    
236  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
237  Capturing subpattern count = 3  Capturing subpattern count = 3
238  Max back reference = 2  Max back reference = 2
239  No options  No options
# Line 272  Matched, but too many substrings Line 275  Matched, but too many substrings
275   2: a   2: a
276   3: b   3: b
277    
278  /abc$/E  /abc$/IE
279  Capturing subpattern count = 0  Capturing subpattern count = 0
280  Options: dollar_endonly  Options: dollar_endonly
281  First char = 'a'  First char = 'a'
# Line 289  No match Line 292  No match
292  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
293  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
294    
295  /the quick brown fox/  /the quick brown fox/I
296  Capturing subpattern count = 0  Capturing subpattern count = 0
297  No options  No options
298  First char = 't'  First char = 't'
# Line 299  Need char = 'x' Line 302  Need char = 'x'
302      this is a line with the quick brown fox      this is a line with the quick brown fox
303   0: the quick brown fox   0: the quick brown fox
304    
305  /the quick brown fox/A  /the quick brown fox/IA
306  Capturing subpattern count = 0  Capturing subpattern count = 0
307  Options: anchored  Options: anchored
308  No first char  No first char
# Line 312  No match Line 315  No match
315  No match  No match
316    
317  /ab(?z)cd/  /ab(?z)cd/
318  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
319    
320  /^abc|def/  /^abc|def/I
321  Capturing subpattern count = 0  Capturing subpattern count = 0
322  No options  No options
323  No first char  No first char
# Line 324  No need char Line 327  No need char
327      abcdef\B      abcdef\B
328   0: def   0: def
329    
330  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
331  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
332  No options  No options
333  First char at start or follows \n  First char at start or follows newline
334  No need char  No need char
335      defabc      defabc
336   0: defabc   0: defabc
# Line 345  No need char Line 347  No need char
347   0: abc   0: abc
348      *** Failers      *** Failers
349  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
350    
351  /^abc|def/P  /^abc|def/P
352      abcdef      abcdef
353   0: abc   0: abc
# Line 361  No match: POSIX code 17: match failed Line 363  No match: POSIX code 17: match failed
363   0: def   0: def
364   1: def   1: def
365   3: def   3: def
366    
367  /the quick brown fox/P  /the quick brown fox/P
368      the quick brown fox      the quick brown fox
369   0: the quick brown fox   0: the quick brown fox
370      *** Failers      *** Failers
371  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
372      The Quick Brown Fox      The Quick Brown Fox
373  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
374    
375  /the quick brown fox/Pi  /the quick brown fox/Pi
376      the quick brown fox      the quick brown fox
377   0: the quick brown fox   0: the quick brown fox
378      The Quick Brown Fox      The Quick Brown Fox
379   0: The Quick Brown Fox   0: The Quick Brown Fox
380    
381  /abc.def/P  /abc.def/P
# Line 381  No match: POSIX code 17: match failed Line 383  No match: POSIX code 17: match failed
383  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
384      abc\ndef      abc\ndef
385  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
386    
387  /abc$/P  /abc$/P
388      abc      abc
389   0: abc   0: abc
390      abc\n      abc\n
391   0: abc   0: abc
392    
393  /(abc)\2/P  /(abc)\2/P
# Line 401  Failed: unmatched parentheses at offset Line 403  Failed: unmatched parentheses at offset
403  /a[]b/  /a[]b/
404  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
405    
406  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
407  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
408  No options  No options
409  No first char  No first char
410  No need char  No need char
411      co-processors, and for      co-processors, and for
412   0: -pr   0: -pr
413    
414  /<.*>/  /<.*>/I
415  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
416  No options  No options
417  First char = '<'  First char = '<'
418  Need char = '>'  Need char = '>'
419      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
420   0: <def>ghi<klm>   0: <def>ghi<klm>
421    
422  /<.*?>/  /<.*?>/I
423  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
424  No options  No options
425  First char = '<'  First char = '<'
426  Need char = '>'  Need char = '>'
427      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
428   0: <def>   0: <def>
429    
430  /<.*>/U  /<.*>/IU
431  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
432  Options: ungreedy  Options: ungreedy
433  First char = '<'  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
 Partial matching not supported  
440  Options: ungreedy  Options: ungreedy
441  First char = '<'  First char = '<'
442  Need char = '>'  Need char = '>'
443      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
444   0: <def>   0: <def>
445    
446  /<.*?>/U  /<.*?>/IU
447  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
448  Options: ungreedy  Options: ungreedy
449  First char = '<'  First char = '<'
450  Need char = '>'  Need char = '>'
451      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
452   0: <def>ghi<klm>   0: <def>ghi<klm>
453    
454  /={3,}/U  /={3,}/IU
455  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
456  Options: ungreedy  Options: ungreedy
457  First char = '='  First char = '='
458  Need char = '='  Need char = '='
459      abc========def      abc========def
460   0: ===   0: ===
461    
462  /(?U)={3,}?/  /(?U)={3,}?/I
463  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
464  Options: ungreedy  Options: ungreedy
465  First char = '='  First char = '='
466  Need char = '='  Need char = '='
467      abc========def      abc========def
468   0: ========   0: ========
469    
470  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
471  Capturing subpattern count = 0  Capturing subpattern count = 0
472  No options  No options
473  First char = 'f'  First char = 'f'
474  Need char = 'o'  Need char = 'o'
475      foo      foo
476   0: foo   0: foo
477      catfoo      catfoo
478   0: foo   0: foo
479      *** Failers      *** Failers
480  No match  No match
481      the barfoo      the barfoo
482  No match  No match
483      and cattlefoo      and cattlefoo
484  No match  No match
485    
486  /(?<=a+)b/  /(?<=a+)b/
# Line 498  Failed: lookbehind assertion is not fixe Line 492  Failed: lookbehind assertion is not fixe
492  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
493  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
494    
495  /(?i)abc/  /(?i)abc/I
496  Capturing subpattern count = 0  Capturing subpattern count = 0
497  Options: caseless  Options: caseless
498  First char = 'a' (caseless)  First char = 'a' (caseless)
499  Need char = 'c' (caseless)  Need char = 'c' (caseless)
500    
501  /(a|(?m)a)/  /(a|(?m)a)/I
502  Capturing subpattern count = 1  Capturing subpattern count = 1
503  No options  No options
504  First char = 'a'  First char = 'a'
505  No need char  No need char
506    
507  /(?i)^1234/  /(?i)^1234/I
508  Capturing subpattern count = 0  Capturing subpattern count = 0
509  Options: anchored caseless  Options: anchored caseless
510  No first char  No first char
511  No need char  No need char
512    
513  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
514  Capturing subpattern count = 1  Capturing subpattern count = 1
515  Options: anchored  Options: anchored
 Case state changes  
516  No first char  No first char
517  No need char  No need char
518    
519  /(?s).*/  /(?s).*/I
520  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
521  Options: anchored dotall  Options: anchored dotall
522  No first char  No first char
523  No need char  No need char
524    
525  /[abcd]/S  /[abcd]/IS
526  Capturing subpattern count = 0  Capturing subpattern count = 0
527  No options  No options
528  No first char  No first char
529  No need char  No need char
530  Starting byte set: a b c d  Starting byte set: a b c d
531    
532  /(?i)[abcd]/S  /(?i)[abcd]/IS
533  Capturing subpattern count = 0  Capturing subpattern count = 0
534  Options: caseless  Options: caseless
535  No first char  No first char
536  No need char  No need char
537  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
538    
539  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
540  Capturing subpattern count = 1  Capturing subpattern count = 1
541  Options: multiline  Options: multiline
542  No first char  No first char
543  No need char  No need char
544  Starting byte set: b c x y  Starting byte set: b c x y
545    
546  /(^a|^b)/m  /(^a|^b)/Im
547  Capturing subpattern count = 1  Capturing subpattern count = 1
548  Options: multiline  Options: multiline
549  First char at start or follows \n  First char at start or follows newline
550  No need char  No need char
551    
552  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
553  Capturing subpattern count = 1  Capturing subpattern count = 1
554  Options: caseless multiline  Options: caseless multiline
555  First char at start or follows \n  First char at start or follows newline
556  No need char  No need char
557    
558  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  Failed: conditional group contains more Line 562  Failed: conditional group contains more
562  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
563    
564  /(?(1a)/  /(?(1a)/
565  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
566    
567    /(?(1a))/
568    Failed: reference to non-existent subpattern at offset 6
569    
570  /(?(?i))/  /(?(?i))/
571  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
572    
573  /(?(abc))/  /(?(abc))/
574  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
575    
576  /(?(?<ab))/  /(?(?<ab))/
577  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
578    
579  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
580  Capturing subpattern count = 1  Capturing subpattern count = 1
581  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
582  No options  No options
583  First char = 'b'  First char = 'b'
584  Need char = 'h'  Need char = 'h'
585    
586  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
587  Capturing subpattern count = 1  Capturing subpattern count = 1
588  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
589  No options  No options
 Case state changes  
590  First char = 'b' (caseless)  First char = 'b' (caseless)
591  Need char = 'h' (caseless)  Need char = 'h' (caseless)
592    
593  /((?i)b)/DS  /((?i)b)/IDZS
594  ------------------------------------------------------------------  ------------------------------------------------------------------
595    0  15 Bra 0          Bra
596    3   7 Bra 1          CBra 1
597    6  01 Opt       01 Opt
598    8  NC b       NC b
599   10   7 Ket          Ket
600   13  00 Opt       00 Opt
601   15  15 Ket          Ket
602   18     End          End
603  ------------------------------------------------------------------  ------------------------------------------------------------------
604  Capturing subpattern count = 1  Capturing subpattern count = 1
605  No options  No options
 Case state changes  
606  First char = 'b' (caseless)  First char = 'b' (caseless)
607  No need char  No need char
608  Study returned NULL  Study returned NULL
609    
610  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
611  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
612  No options  No options
 Case state changes  
613  No first char  No first char
614  No need char  No need char
615  Starting byte set: C a b c d  Starting byte set: C a b c d
616    
617  /a$/  /a$/I
618  Capturing subpattern count = 0  Capturing subpattern count = 0
619  No options  No options
620  First char = 'a'  First char = 'a'
# Line 634  No need char Line 623  No need char
623   0: a   0: a
624      a\n      a\n
625   0: a   0: a
626      *** Failers      *** Failers
627  No match  No match
628      \Za      \Za
629  No match  No match
630      \Za\n      \Za\n
631  No match  No match
632    
633  /a$/m  /a$/Im
634  Capturing subpattern count = 0  Capturing subpattern count = 0
635  Options: multiline  Options: multiline
636  First char = 'a'  First char = 'a'
# Line 650  No need char Line 639  No need char
639   0: a   0: a
640      a\n      a\n
641   0: a   0: a
642      \Za\n      \Za\n
643   0: a   0: a
644      *** Failers      *** Failers
645  No match  No match
646      \Za      \Za
647  No match  No match
648    
649  /\Aabc/m  /\Aabc/Im
650  Capturing subpattern count = 0  Capturing subpattern count = 0
651  Options: anchored multiline  Options: anchored multiline
652  No first char  No first char
653  No need char  No need char
654    
655  /^abc/m  /^abc/Im
656  Capturing subpattern count = 0  Capturing subpattern count = 0
657  Options: multiline  Options: multiline
658  First char at start or follows \n  First char at start or follows newline
659  Need char = 'c'  Need char = 'c'
660    
661  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
662  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
663  Options: anchored  Options: anchored
664  No first char  No first char
665  No need char  No need char
# Line 683  No need char Line 671  No need char
671   4: bbbbccccc   4: bbbbccccc
672   5: def   5: def
673    
674  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
675  Capturing subpattern count = 0  Capturing subpattern count = 0
676  No options  No options
677  No first char  No first char
678  No need char  No need char
679  Starting byte set: a b  Starting byte set: a b
680    
681  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
682  Capturing subpattern count = 1  Capturing subpattern count = 1
683  No options  No options
684  No first char  No first char
685  Need char = 'a'  Need char = 'a'
686  Starting byte set: a o  Starting byte set: a o
687    
688  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
689  Capturing subpattern count = 0  Capturing subpattern count = 0
690  No options  No options
691  No first char  No first char
692  No need char  No need char
693  Starting byte set: a b  Starting byte set: a b
694    
695  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
696  Capturing subpattern count = 0  Capturing subpattern count = 0
697    Contains explicit CR or LF match
698  Options: multiline  Options: multiline
699  No first char  No first char
700  Need char = 'r'  Need char = 'r'
701      foo\nbarbar      foo\nbarbar
702   0: bar   0: bar
703      ***Failers      ***Failers
704  No match  No match
705      rhubarb      rhubarb
706  No match  No match
707      barbell      barbell
708  No match  No match
709      abc\nbarton      abc\nbarton
710  No match  No match
711    
712  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
713  Capturing subpattern count = 0  Capturing subpattern count = 0
714    Contains explicit CR or LF match
715  Options: multiline  Options: multiline
716  First char at start or follows \n  First char at start or follows newline
717  Need char = 'r'  Need char = 'r'
718      foo\nbarbar      foo\nbarbar
719   0: bar   0: bar
720      ***Failers      ***Failers
721  No match  No match
722      rhubarb      rhubarb
723  No match  No match
724      barbell      barbell
725  No match  No match
726      abc\nbarton      abc\nbarton
727  No match  No match
728    
729  /(?>^abc)/m  /(?>^abc)/Im
730  Capturing subpattern count = 0  Capturing subpattern count = 0
731  Options: multiline  Options: multiline
732  First char at start or follows \n  First char at start or follows newline
733  Need char = 'c'  Need char = 'c'
734      abc      abc
735   0: abc   0: abc
# Line 747  Need char = 'c' Line 737  Need char = 'c'
737   0: abc   0: abc
738      *** Failers      *** Failers
739  No match  No match
740      defabc      defabc
741  No match  No match
742    
743  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 750  Failed: lookbehind assertion is not fixe
750  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
751    
752  /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'  
753    
754  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
755  Capturing subpattern count = 0  Capturing subpattern count = 0
756  No options  No options
757  First char = '-'  First char = '-'
# Line 778  Need char = 't' Line 764  Need char = 't'
764  No match  No match
765      cart      cart
766  No match  No match
767      horse-and-cart      horse-and-cart
768  No match  No match
769    
770  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
771  Capturing subpattern count = 0  Capturing subpattern count = 0
772  No options  No options
 Case state changes  
773  No first char  No first char
774  No need char  No need char
775    
776  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
777  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
778  No options  No options
779  First char at start or follows \n  First char at start or follows newline
780  No need char  No need char
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
# Line 802  No need char Line 786  No need char
786   1: <unset>   1: <unset>
787   2: xyz   2: xyz
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791  No options  No options
 Case state changes  
792  First char = 'Z'  First char = 'Z'
793  Need char = 'Z'  Need char = 'Z'
794      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 801  Need char = 'Z'
801   0: ZZ   0: ZZ
802      bZZ      bZZ
803   0: ZZ   0: ZZ
804      BZZ      BZZ
805   0: ZZ   0: ZZ
806      *** Failers      *** Failers
807  No match  No match
808      ZZ      ZZ
809  No match  No match
810      abXYZZ      abXYZZ
811  No match  No match
812      zzz      zzz
813  No match  No match
814      bzz      bzz
815  No match  No match
816    
817  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
818  Capturing subpattern count = 1  Capturing subpattern count = 1
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
822      bar      bar
823   0: bar   0: bar
824      foobbar      foobbar
825   0: bar   0: bar
826      *** Failers      *** Failers
827  No match  No match
828      fooabar      fooabar
829  No match  No match
830    
831  /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
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
834  First char = 'T'  First char = 'T'
835  Need char = 't'  Need char = 't'
836    
837  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
838  Capturing subpattern count = 1  Capturing subpattern count = 1
839  Options: anchored  Options: anchored
840  No first char  No first char
841  No need char  No need char
842      *** Failers      *** Failers
843  No match  No match
844      a      a
845  No match  No match
846    
847  /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
848  Capturing subpattern count = 0  Capturing subpattern count = 0
849  No options  No options
850  First char = 'T'  First char = 'T'
851  Need char = 'g'  Need char = 'g'
852    
853  /^(a\1?){4}$/  /^(a\1?){4}$/I
854  Capturing subpattern count = 1  Capturing subpattern count = 1
855  Max back reference = 1  Max back reference = 1
856  Options: anchored  Options: anchored
# Line 876  No need char Line 859  No need char
859      aaaaaa      aaaaaa
860   0: aaaaaa   0: aaaaaa
861   1: aa   1: aa
862    
863  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
864  Capturing subpattern count = 0  Capturing subpattern count = 0
865  No options  No options
866  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 902  Failed: reference to non-existent subpat
902  /(a)|\2/  /(a)|\2/
903  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
904    
905  /a[b-a]/i  /a[b-a]/Ii
906  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
907    
908  /a[]b/i  /a[]b/Ii
909  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
910    
911  /a[/i  /a[/Ii
912  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
913    
914  /*a/i  /*a/Ii
915  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
916    
917  /(*)b/i  /(*)b/Ii
918  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
919    
920  /abc)/i  /abc)/Ii
921  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
922    
923  /(abc/i  /(abc/Ii
924  Failed: missing ) at offset 4  Failed: missing ) at offset 4
925    
926  /a**/i  /a**/Ii
927  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
928    
929  /)(/i  /)(/Ii
930  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
931    
932  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 936  Failed: missing ) at offset 4
936  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
937    
938  /a(?{)b/  /a(?{)b/
939  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
940    
941  /a(?{{})b/  /a(?{{})b/
942  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
943    
944  /a(?{}})b/  /a(?{}})b/
945  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
946    
947  /a(?{"{"})b/  /a(?{"{"})b/
948  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
949    
950  /a(?{"{"}})b/  /a(?{"{"}})b/
951  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
952    
953  /(?(1?)a|b)/  /(?(1?)a|b)/
954  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  
955    
956  /[a[:xyz:/  /[a[:xyz:/
957  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 971  Failed: POSIX code 9: bad escape sequenc
971  /abc/\i  /abc/\i
972  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
973    
974  /(a)bc(d)/  /(a)bc(d)/I
975  Capturing subpattern count = 2  Capturing subpattern count = 2
976  No options  No options
977  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 990  Need char = 'd'
990   1: a   1: a
991   2: d   2: d
992  copy substring 5 failed -7  copy substring 5 failed -7
993    
994  /(.{20})/  /(.{20})/I
995  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
996  No options  No options
997  No first char  No first char
998  No need char  No need char
# Line 1023  No need char Line 1002  No need char
1002      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1003   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1004   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1005  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1006      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1007   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1008   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1009   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1010    
1011  /(.{15})/  /(.{15})/I
1012  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1013  No options  No options
1014  No first char  No first char
1015  No need char  No need char
# Line 1044  No need char Line 1022  No need char
1022   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1023   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1024    
1025  /(.{16})/  /(.{16})/I
1026  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1027  No options  No options
1028  No first char  No first char
1029  No need char  No need char
# Line 1056  No need char Line 1033  No need char
1033      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1034   0: abcdefghijklmnop   0: abcdefghijklmnop
1035   1: abcdefghijklmnop   1: abcdefghijklmnop
1036  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1037   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1038   0L abcdefghijklmnop   0L abcdefghijklmnop
1039   1L abcdefghijklmnop   1L abcdefghijklmnop
1040    
1041  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1042  Capturing subpattern count = 3  Capturing subpattern count = 3
1043  Options: anchored  Options: anchored
1044  No first char  No first char
1045  No need char  No need char
1046      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1047   0: adef   0: adef
1048   1: a   1: a
1049   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1056  get substring 4 failed -7
1056   1L a   1L a
1057   2L   2L
1058   3L f   3L f
1059      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1060   0: bcdef   0: bcdef
1061   1: bc   1: bc
1062   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1069  get substring 4 failed -7
1069   1L bc   1L bc
1070   2L bc   2L bc
1071   3L f   3L f
1072      adefghijk\C0      adefghijk\C0
1073   0: adef   0: adef
1074   1: a   1: a
1075   2: <unset>   2: <unset>
1076   3: f   3: f
1077   0C adef (4)   0C adef (4)
1078    
1079  /^abc\00def/  /^abc\00def/I
1080  Capturing subpattern count = 0  Capturing subpattern count = 0
1081  Options: anchored  Options: anchored
1082  No first char  No first char
1083  No need char  No need char
1084      abc\00def\L\C0      abc\00def\L\C0
1085   0: abc\x00def   0: abc\x00def
1086   0C abc (7)   0C abc (7)
1087   0L abc   0L abc
1088    
1089  /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]+
1090  )((?:[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]+
1091  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1092  Capturing subpattern count = 8  Capturing subpattern count = 8
1093  Partial matching not supported  Contains explicit CR or LF match
1094  No options  No options
1095  First char = 'w'  First char = 'w'
1096  Need char = 'd'  Need char = 'd'
1097    
1098  /.*X/D  /.*X/IDZ
1099  ------------------------------------------------------------------  ------------------------------------------------------------------
1100    0   7 Bra 0          Bra
1101    3     Any*          Any*
1102    5     X          X
1103    7   7 Ket          Ket
1104   10     End          End
1105  ------------------------------------------------------------------  ------------------------------------------------------------------
1106  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1107  No options  No options
1108  First char at start or follows \n  First char at start or follows newline
1109  Need char = 'X'  Need char = 'X'
1110    
1111  /.*X/Ds  /.*X/IDZs
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113    0   7 Bra 0          Bra
1114    3     Any*          AllAny*
1115    5     X          X
1116    7   7 Ket          Ket
1117   10     End          End
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1120  Options: anchored dotall  Options: anchored dotall
1121  No first char  No first char
1122  Need char = 'X'  Need char = 'X'
1123    
1124  /(.*X|^B)/D  /(.*X|^B)/IDZ
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126    0  19 Bra 0          Bra
1127    3   7 Bra 1          CBra 1
1128    6     Any*          Any*
1129    8     X          X
1130   10   6 Alt          Alt
1131   13     ^          ^
1132   14     B          B
1133   16  13 Ket          Ket
1134   19  19 Ket          Ket
1135   22     End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1138  No options  No options
1139  First char at start or follows \n  First char at start or follows newline
1140  No need char  No need char
1141    
1142  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144    0  19 Bra 0          Bra
1145    3   7 Bra 1          CBra 1
1146    6     Any*          AllAny*
1147    8     X          X
1148   10   6 Alt          Alt
1149   13     ^          ^
1150   14     B          B
1151   16  13 Ket          Ket
1152   19  19 Ket          Ket
1153   22     End          End
1154  ------------------------------------------------------------------  ------------------------------------------------------------------
1155  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1156  Options: anchored dotall  Options: anchored dotall
1157  No first char  No first char
1158  No need char  No need char
1159    
1160  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162    0  19 Bra 0          Bra
1163    3   7 Bra 1          CBra 1
1164    6     Any*          AllAny*
1165    8     X          X
1166   10   6 Alt          Alt
1167   13     ^          ^
1168   14     B          B
1169   16  13 Ket          Ket
1170   19  19 Ket          Ket
1171   22     End          End
1172  ------------------------------------------------------------------  ------------------------------------------------------------------
1173  Capturing subpattern count = 1  Capturing subpattern count = 1
 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  25 Bra 0          Bra
1181    3   9 Bra 0          Bra
1182    6  04 Opt       04 Opt
1183    8     Any*          AllAny*
1184   10     X          X
1185   12   8 Alt          Alt
1186   15  04 Opt       04 Opt
1187   17     ^          ^
1188   18     B          B
1189   20  17 Ket          Ket
1190   23  00 Opt       00 Opt
1191   25  25 Ket          Ket
1192   28     End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 0  Capturing subpattern count = 0
1195  Partial matching not supported  Options: anchored
1196  No options  No first char
 First char at start or follows \n  
1197  No need char  No need char
1198    
1199  /\Biss\B/+  /\Biss\B/I+
1200  Capturing subpattern count = 0  Capturing subpattern count = 0
1201  No options  No options
1202  First char = 'i'  First char = 'i'
# Line 1235  Need char = 's' Line 1205  Need char = 's'
1205   0: iss   0: iss
1206   0+ issippi   0+ issippi
1207    
1208  /\Biss\B/+P  /\Biss\B/I+P
1209      Mississippi      Mississippi
1210   0: iss   0: iss
1211   0+ issippi   0+ issippi
1212    
1213  /iss/G+  /iss/IG+
1214  Capturing subpattern count = 0  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1221  Need char = 's'
1221   0: iss   0: iss
1222   0+ ippi   0+ ippi
1223    
1224  /\Biss\B/G+  /\Biss\B/IG+
1225  Capturing subpattern count = 0  Capturing subpattern count = 0
1226  No options  No options
1227  First char = 'i'  First char = 'i'
# Line 1260  Need char = 's' Line 1230  Need char = 's'
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /\Biss\B/g+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235  No options  No options
1236  First char = 'i'  First char = 'i'
# Line 1275  No match Line 1245  No match
1245      Mississippi\A      Mississippi\A
1246  No match  No match
1247    
1248  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1249  Capturing subpattern count = 0  Capturing subpattern count = 0
1250  No options  No options
1251  First char = 'i'  First char = 'i'
# Line 1286  Need char = 's' Line 1256  Need char = 's'
1256   0: iss   0: iss
1257   0+ ippi   0+ ippi
1258    
1259  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1260  Capturing subpattern count = 0  Capturing subpattern count = 0
1261  No options  No options
1262  First char = 'i'  First char = 'i'
# Line 1295  Need char = 's' Line 1265  Need char = 's'
1265   0: iss   0: iss
1266   0+ issippi   0+ issippi
1267    
1268  /^iss/g+  /^iss/Ig+
1269  Capturing subpattern count = 0  Capturing subpattern count = 0
1270  Options: anchored  Options: anchored
1271  No first char  No first char
# Line 1303  No need char Line 1273  No need char
1273      ississippi      ississippi
1274   0: iss   0: iss
1275   0+ issippi   0+ issippi
1276    
1277  /.*iss/g+  /.*iss/Ig+
1278  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1279  No options  No options
1280  First char at start or follows \n  First char at start or follows newline
1281  Need char = 's'  Need char = 's'
1282      abciss\nxyzisspqr      abciss\nxyzisspqr
1283   0: abciss   0: abciss
1284   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1285   0: xyziss   0: xyziss
1286   0+ pqr   0+ pqr
1287    
1288  /.i./+g  /.i./I+g
1289  Capturing subpattern count = 0  Capturing subpattern count = 0
1290  No options  No options
1291  No first char  No first char
# Line 1342  Need char = 'i' Line 1311  Need char = 'i'
1311   0+ river   0+ river
1312   0: riv   0: riv
1313   0+ er   0+ er
1314      Missouri river\A      Missouri river\A
1315   0: Mis   0: Mis
1316   0+ souri river   0+ souri river
1317    
1318  /^.is/+g  /^.is/I+g
1319  Capturing subpattern count = 0  Capturing subpattern count = 0
1320  Options: anchored  Options: anchored
1321  No first char  No first char
# Line 1355  No need char Line 1324  No need char
1324   0: Mis   0: Mis
1325   0+ sissippi   0+ sissippi
1326    
1327  /^ab\n/g+  /^ab\n/Ig+
1328  Capturing subpattern count = 0  Capturing subpattern count = 0
1329    Contains explicit CR or LF match
1330  Options: anchored  Options: anchored
1331  No first char  No first char
1332  No need char  No need char
# Line 1364  No need char Line 1334  No need char
1334   0: ab\x0a   0: ab\x0a
1335   0+ ab\x0acd   0+ ab\x0acd
1336    
1337  /^ab\n/mg+  /^ab\n/Img+
1338  Capturing subpattern count = 0  Capturing subpattern count = 0
1339    Contains explicit CR or LF match
1340  Options: multiline  Options: multiline
1341  First char at start or follows \n  First char at start or follows newline
1342  Need char = 10  Need char = 10
1343      ab\nab\ncd      ab\nab\ncd
1344   0: ab\x0a   0: ab\x0a
# Line 1375  Need char = 10 Line 1346  Need char = 10
1346   0: ab\x0a   0: ab\x0a
1347   0+ cd   0+ cd
1348    
1349  /abc/  /abc/I
1350  Capturing subpattern count = 0  Capturing subpattern count = 0
1351  No options  No options
1352  First char = 'a'  First char = 'a'
1353  Need char = 'c'  Need char = 'c'
1354    
1355  /abc|bac/  /abc|bac/I
1356  Capturing subpattern count = 0  Capturing subpattern count = 0
1357  No options  No options
1358  No first char  No first char
1359  Need char = 'c'  Need char = 'c'
1360    
1361  /(abc|bac)/  /(abc|bac)/I
1362  Capturing subpattern count = 1  Capturing subpattern count = 1
1363  No options  No options
1364  No first char  No first char
1365  Need char = 'c'  Need char = 'c'
1366    
1367  /(abc|(c|dc))/  /(abc|(c|dc))/I
1368  Capturing subpattern count = 2  Capturing subpattern count = 2
1369  No options  No options
1370  No first char  No first char
1371  Need char = 'c'  Need char = 'c'
1372    
1373  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1374  Capturing subpattern count = 2  Capturing subpattern count = 2
1375  No options  No options
1376  No first char  No first char
1377  Need char = 'c'  Need char = 'c'
1378    
1379  /a*/  /a*/I
1380  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1381  No options  No options
1382  No first char  No first char
1383  No need char  No need char
1384    
1385  /a+/  /a+/I
1386  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1387  No options  No options
1388  First char = 'a'  First char = 'a'
1389  No need char  No need char
1390    
1391  /(baa|a+)/  /(baa|a+)/I
1392  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1393  No options  No options
1394  No first char  No first char
1395  Need char = 'a'  Need char = 'a'
1396    
1397  /a{0,3}/  /a{0,3}/I
1398  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1399  No options  No options
1400  No first char  No first char
1401  No need char  No need char
1402    
1403  /baa{3,}/  /baa{3,}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1405  No options  No options
1406  First char = 'b'  First char = 'b'
1407  Need char = 'a'  Need char = 'a'
1408    
1409  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1410  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1411  No options  No options
1412  First char = '"'  First char = '"'
1413  Need char = '"'  Need char = '"'
1414    
1415  /(abc|ab[cd])/  /(abc|ab[cd])/I
1416  Capturing subpattern count = 1  Capturing subpattern count = 1
1417  No options  No options
1418  First char = 'a'  First char = 'a'
1419  No need char  No need char
1420    
1421  /(a|.)/  /(a|.)/I
1422  Capturing subpattern count = 1  Capturing subpattern count = 1
1423  No options  No options
1424  No first char  No first char
1425  No need char  No need char
1426    
1427  /a|ba|\w/  /a|ba|\w/I
1428  Capturing subpattern count = 0  Capturing subpattern count = 0
1429  No options  No options
1430  No first char  No first char
1431  No need char  No need char
1432    
1433  /abc(?=pqr)/  /abc(?=pqr)/I
1434  Capturing subpattern count = 0  Capturing subpattern count = 0
1435  No options  No options
1436  First char = 'a'  First char = 'a'
1437  Need char = 'r'  Need char = 'r'
1438    
1439  /...(?<=abc)/  /...(?<=abc)/I
1440  Capturing subpattern count = 0  Capturing subpattern count = 0
1441  No options  No options
1442  No first char  No first char
1443  No need char  No need char
1444    
1445  /abc(?!pqr)/  /abc(?!pqr)/I
1446  Capturing subpattern count = 0  Capturing subpattern count = 0
1447  No options  No options
1448  First char = 'a'  First char = 'a'
1449  Need char = 'c'  Need char = 'c'
1450    
1451  /ab./  /ab./I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  Need char = 'b'  Need char = 'b'
1456    
1457  /ab[xyz]/  /ab[xyz]/I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  First char = 'a'  First char = 'a'
1461  Need char = 'b'  Need char = 'b'
1462    
1463  /abc*/  /abc*/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'b'  Need char = 'b'
1468    
1469  /ab.c*/  /ab.c*/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'a'  First char = 'a'
1473  Need char = 'b'  Need char = 'b'
1474    
1475  /a.c*/  /a.c*/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  No need char  No need char
1480    
1481  /.c*/  /.c*/I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1483  No options  No options
1484  No first char  No first char
1485  No need char  No need char
1486    
1487  /ac*/  /ac*/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1489  No options  No options
1490  First char = 'a'  First char = 'a'
1491  No need char  No need char
1492    
1493  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1494  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1495  No options  No options
1496  No first char  No first char
1497  No need char  No need char
1498    
1499  /a.c*|aba/  /a.c*|aba/I
1500  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1501  No options  No options
1502  First char = 'a'  First char = 'a'
1503  No need char  No need char
1504    
1505  /.+a/  /.+a/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1507  No options  No options
1508  No first char  No first char
1509  Need char = 'a'  Need char = 'a'
1510    
1511  /(?=abcda)a.*/  /(?=abcda)a.*/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1513  No options  No options
1514  First char = 'a'  First char = 'a'
1515  Need char = 'a'  Need char = 'a'
1516    
1517  /(?=a)a.*/  /(?=a)a.*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  No need char  No need char
1522    
1523  /a(b)*/  /a(b)*/I
1524  Capturing subpattern count = 1  Capturing subpattern count = 1
1525  No options  No options
1526  First char = 'a'  First char = 'a'
1527  No need char  No need char
1528    
1529  /a\d*/  /a\d*/I
1530  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  No need char  No need char
1534    
1535  /ab\d*/  /ab\d*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  Need char = 'b'  Need char = 'b'
1540    
1541  /a(\d)*/  /a(\d)*/I
1542  Capturing subpattern count = 1  Capturing subpattern count = 1
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  No need char  No need char
1546    
1547  /abcde{0,0}/  /abcde{0,0}/I
1548  Capturing subpattern count = 0  Capturing subpattern count = 0
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  Need char = 'd'  Need char = 'd'
1552    
1553  /ab\d+/  /ab\d+/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  Need char = 'b'  Need char = 'b'
1558    
1559  /a(?(1)b)/  /a(?(1)b)(.)/I
1560  Capturing subpattern count = 0  Capturing subpattern count = 1
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  No need char  No need char
1564    
1565  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 1
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  Need char = 'g'  Need char = 'g'
1570    
1571  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 1
1573  No options  No options
1574  First char = 'a'  First char = 'a'
1575  No need char  No need char
1576    
1577  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 1
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'g'  Need char = 'g'
1582    
1583  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  Need char = 'b'  Need char = 'b'
1588    
1589  /ab\d{0}e/  /ab\d{0}e/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 0
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'e'  Need char = 'e'
1594    
1595  /a?b?/  /a?b?/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597  No options  No options
1598  No first char  No first char
# Line 1655  No need char Line 1607  No need char
1607   0:   0:
1608      *** Failers      *** Failers
1609   0:   0:
1610      \N      \N
1611  No match  No match
1612    
1613  /|-/  /|-/I
1614  Capturing subpattern count = 0  Capturing subpattern count = 0
1615  No options  No options
1616  No first char  No first char
# Line 1671  No need char Line 1623  No need char
1623   0: -   0: -
1624      *** Failers      *** Failers
1625   0:   0:
1626      \Nabc      \Nabc
1627  No match  No match
1628    
1629  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1700  No match Line 1652  No match
1652   1: bbbb   1: bbbb
1653   2: z   2: z
1654   3: z   3: z
1655    
1656  /^.?abcd/S  /^.?abcd/IS
1657  Capturing subpattern count = 0  Capturing subpattern count = 0
1658  Options: anchored  Options: anchored
1659  No first char  No first char
# Line 1715  Study returned NULL Line 1667  Study returned NULL
1667    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1668    )*            # Zero or more contents    )*            # Zero or more contents
1669    \)            # Closing )    \)            # Closing )
1670    /x    /Ix
1671  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1672  Options: extended  Options: extended
1673  First char = '('  First char = '('
1674  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1678  Need char = ')'
1678   0: (abcd)   0: (abcd)
1679      xyz(abcd)      xyz(abcd)
1680   0: (abcd)   0: (abcd)
1681      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1682   0: (ab(xy)cd)   0: (ab(xy)cd)
1683      (ab(xycd)pqr      (ab(xycd)pqr
1684   0: (xycd)   0: (xycd)
1685      () abc ()      () abc ()
1686   0: ()   0: ()
1687      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1688   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1689      *** Failers      *** Failers
1690  No match  No match
1691      abcd      abcd
1692  No match  No match
1693      abcd)      abcd)
1694  No match  No match
1695      (abcd      (abcd
1696  No match  No match
1697    
1698  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1699  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1700  Options: extended  Options: extended
1701  First char = '('  First char = '('
1702  Need char = ')'  Need char = ')'
1703      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1704   0: (ab(xy)cd)   0: (ab(xy)cd)
1705   1: cd   1: cd
1706      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1709  Need char = ')'
1709   0: (x(y)z)   0: (x(y)z)
1710   1: z   1: z
1711    
1712  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1713  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1769  Need char = ')' Line 1718  Need char = ')'
1718   0: (abcd)   0: (abcd)
1719      (ab(xy)cd)      (ab(xy)cd)
1720   0: (xy)   0: (xy)
1721      (a(b(c)d)e)      (a(b(c)d)e)
1722   0: (c)   0: (c)
1723      ((ab))      ((ab))
1724   0: ((ab))   0: ((ab))
1725      *** Failers      *** Failers
1726  No match  No match
1727      ()      ()
1728  No match  No match
1729    
1730  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1731  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1732  Options: extended  Options: extended
1733  First char = '('  First char = '('
1734  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1737  Need char = ')'
1737      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1738   0: (fsh)   0: (fsh)
1739    
1740  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1741  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1742  Options: extended  Options: extended
1743  First char = '('  First char = '('
1744  Need char = ')'  Need char = ')'
# Line 1799  Need char = ')' Line 1746  Need char = ')'
1746   0: (ab(xy)cd)   0: (ab(xy)cd)
1747   1: cd   1: cd
1748    
1749  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1750  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1751  Options: extended  Options: extended
1752  First char = '('  First char = '('
1753  Need char = ')'  Need char = ')'
# Line 1810  Need char = ')' Line 1756  Need char = ')'
1756   1: ab(xy)cd   1: ab(xy)cd
1757   2: cd   2: cd
1758    
1759  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1760  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1761  Options: extended  Options: extended
1762  First char = '('  First char = '('
1763  Need char = ')'  Need char = ')'
# Line 1827  Need char = ')' Line 1772  Need char = ')'
1772   2: ab(xy)cd   2: ab(xy)cd
1773   3: cd   3: cd
1774    
1775  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1776  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1777  Options: extended  Options: extended
1778  First char = '('  First char = '('
1779  Need char = ')'  Need char = ')'
# Line 1844  Need char = ')' Line 1788  Need char = ')'
1788   2: 123   2: 123
1789   3: cd   3: cd
1790    
1791  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1792  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1793  Options: extended  Options: extended
1794  First char = '('  First char = '('
1795  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1807  Need char = ')'
1807  10: ab(xy)cd  10: ab(xy)cd
1808  11: cd  11: cd
1809    
1810  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1811  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1812  Options: extended  Options: extended
1813  First char = '('  First char = '('
1814  Need char = ')'  Need char = ')'
# Line 1874  Need char = ')' Line 1816  Need char = ')'
1816   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1817   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1818   2: 123   2: 123
  3: <unset>  
1819    
1820  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1821  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1822  Options: extended  Options: extended
1823  First char = '('  First char = '('
1824  Need char = ')'  Need char = ')'
# Line 1893  Need char = ')' Line 1833  Need char = ')'
1833   2: ij   2: ij
1834   3: (cd(ef)gh)   3: (cd(ef)gh)
1835    
1836  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1837    ------------------------------------------------------------------
1838            Bra
1839            ^
1840            [0-9A-Za-z]
1841            Ket
1842            End
1843    ------------------------------------------------------------------
1844    Capturing subpattern count = 0
1845    Options: anchored
1846    No first char
1847    No need char
1848    
1849    /^[[:^alnum:]]/DZ
1850  ------------------------------------------------------------------  ------------------------------------------------------------------
1851    0  37 Bra 0          Bra
1852    3     ^          ^
1853    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1854   37  37 Ket          Ket
1855   40     End          End
1856  ------------------------------------------------------------------  ------------------------------------------------------------------
1857  Capturing subpattern count = 0  Capturing subpattern count = 0
1858  Options: anchored  Options: anchored
1859  No first char  No first char
1860  No need char  No need char
1861    
1862  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1863  ------------------------------------------------------------------  ------------------------------------------------------------------
1864    0  37 Bra 0          Bra
1865    3     ^          ^
1866    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1867   37  37 Ket          Ket
1868   40     End          End
1869  ------------------------------------------------------------------  ------------------------------------------------------------------
1870  Capturing subpattern count = 0  Capturing subpattern count = 0
1871  Options: anchored  Options: anchored
1872  No first char  No first char
1873  No need char  No need char
1874    
1875  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1876  ------------------------------------------------------------------  ------------------------------------------------------------------
1877    0  37 Bra 0          Bra
1878    3     ^          ^
1879    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1880   37  37 Ket          Ket
1881   40     End          End
1882  ------------------------------------------------------------------  ------------------------------------------------------------------
1883  Capturing subpattern count = 0  Capturing subpattern count = 0
1884  Options: anchored  Options: anchored
1885  No first char  No first char
1886  No need char  No need char
1887    
1888  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1889    Capturing subpattern count = 0
1890    No options
1891    No first char
1892    No need char
1893    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
1894      _ 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
1895    
1896    /^[[:ascii:]]/DZ
1897  ------------------------------------------------------------------  ------------------------------------------------------------------
1898    0  37 Bra 0          Bra
1899    3     ^          ^
1900    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1901   37  37 Ket          Ket
1902   40     End          End
1903  ------------------------------------------------------------------  ------------------------------------------------------------------
1904  Capturing subpattern count = 0  Capturing subpattern count = 0
1905  Options: anchored  Options: anchored
1906  No first char  No first char
1907  No need char  No need char
1908    
1909  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1910  ------------------------------------------------------------------  ------------------------------------------------------------------
1911    0  37 Bra 0          Bra
1912    3     ^          ^
1913    4     [\x00-\x7f]          [\x80-\xff] (neg)
1914   37  37 Ket          Ket
1915   40     End          End
1916  ------------------------------------------------------------------  ------------------------------------------------------------------
1917  Capturing subpattern count = 0  Capturing subpattern count = 0
1918  Options: anchored  Options: anchored
1919  No first char  No first char
1920  No need char  No need char
1921    
1922  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1923  ------------------------------------------------------------------  ------------------------------------------------------------------
1924    0  37 Bra 0          Bra
1925    3     ^          ^
1926    4     [\x80-\xff]          [\x09 ]
1927   37  37 Ket          Ket
1928   40     End          End
1929  ------------------------------------------------------------------  ------------------------------------------------------------------
1930  Capturing subpattern count = 0  Capturing subpattern count = 0
1931  Options: anchored  Options: anchored
1932  No first char  No first char
1933  No need char  No need char
1934    
1935  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1936  ------------------------------------------------------------------  ------------------------------------------------------------------
1937    0  37 Bra 0          Bra
1938    3     ^          ^
1939    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1940   37  37 Ket          Ket
1941   40     End          End
1942  ------------------------------------------------------------------  ------------------------------------------------------------------
1943  Capturing subpattern count = 0  Capturing subpattern count = 0
1944  Options: anchored  Options: anchored
1945  No first char  No first char
1946  No need char  No need char
1947    
1948  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1949    Capturing subpattern count = 0
1950    Contains explicit CR or LF match
1951    No options
1952    No first char
1953    No need char
1954    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1955    
1956    /^[[:cntrl:]]/DZ
1957  ------------------------------------------------------------------  ------------------------------------------------------------------
1958    0  37 Bra 0          Bra
1959    3     ^          ^
1960    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1961   37  37 Ket          Ket
1962   40     End          End
1963  ------------------------------------------------------------------  ------------------------------------------------------------------
1964  Capturing subpattern count = 0  Capturing subpattern count = 0
1965  Options: anchored  Options: anchored
1966  No first char  No first char
1967  No need char  No need char
1968    
1969  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1970  ------------------------------------------------------------------  ------------------------------------------------------------------
1971    0  37 Bra 0          Bra
1972    3     ^          ^
1973    4     [0-9]          [0-9]
1974   37  37 Ket          Ket
1975   40     End          End
1976  ------------------------------------------------------------------  ------------------------------------------------------------------
1977  Capturing subpattern count = 0  Capturing subpattern count = 0
1978  Options: anchored  Options: anchored
1979  No first char  No first char
1980  No need char  No need char
1981    
1982  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1983  ------------------------------------------------------------------  ------------------------------------------------------------------
1984    0  37 Bra 0          Bra
1985    3     ^          ^
1986    4     [!-~]          [!-~]
1987   37  37 Ket          Ket
1988   40     End          End
1989  ------------------------------------------------------------------  ------------------------------------------------------------------
1990  Capturing subpattern count = 0  Capturing subpattern count = 0
1991  Options: anchored  Options: anchored
1992  No first char  No first char
1993  No need char  No need char
1994    
1995  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1996  ------------------------------------------------------------------  ------------------------------------------------------------------
1997    0  37 Bra 0          Bra
1998    3     ^          ^
1999    4     [a-z]          [a-z]
2000   37  37 Ket          Ket
2001   40     End          End
2002  ------------------------------------------------------------------  ------------------------------------------------------------------
2003  Capturing subpattern count = 0  Capturing subpattern count = 0
2004  Options: anchored  Options: anchored
2005  No first char  No first char
2006  No need char  No need char
2007    
2008  /^[[:print:]]/D  /^[[:print:]]/DZ
2009  ------------------------------------------------------------------  ------------------------------------------------------------------
2010    0  37 Bra 0          Bra
2011    3     ^          ^
2012    4     [ -~]          [ -~]
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  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2022  ------------------------------------------------------------------  ------------------------------------------------------------------
2023    0  37 Bra 0          Bra
2024    3     ^          ^
2025    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
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  /^[[:space:]]/D  /^[[:space:]]/DZ
2035  ------------------------------------------------------------------  ------------------------------------------------------------------
2036    0  37 Bra 0          Bra
2037    3     ^          ^
2038    4     [\x09-\x0d ]          [\x09-\x0d ]
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  /^[[:upper:]]/D  /^[[:upper:]]/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  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2061  ------------------------------------------------------------------  ------------------------------------------------------------------
2062    0  37 Bra 0          Bra
2063    3     ^          ^
2064    4     [0-9A-Fa-f]          [0-9A-Fa-f]
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  /^[[:word:]]/D  /^[[:word:]]/DZ
2074  ------------------------------------------------------------------  ------------------------------------------------------------------
2075    0  37 Bra 0          Bra
2076    3     ^          ^
2077    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
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  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2087  ------------------------------------------------------------------  ------------------------------------------------------------------
2088    0  37 Bra 0          Bra
2089    3     ^          ^
2090    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
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  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2100  ------------------------------------------------------------------  ------------------------------------------------------------------
2101    0  37 Bra 0          Bra
2102    3     ^          ^
2103    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
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  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2113  ------------------------------------------------------------------  ------------------------------------------------------------------
2114    0  37 Bra 0          Bra
2115    3     ^          ^
2116    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
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  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2126  ------------------------------------------------------------------  ------------------------------------------------------------------
2127    0  36 Bra 0          Bra
2128    3     [%01A-Za-z]          [%01A-Za-z]
2129   36  36 Ket          Ket
2130   39     End          End
2131  ------------------------------------------------------------------  ------------------------------------------------------------------
2132  Capturing subpattern count = 0  Capturing subpattern count = 0
2133  No options  No options
2134  No first char  No first char
2135  No need char  No need char
2136    
2137  /[[.ch.]]/  /[[.ch.]]/I
2138  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2139    
2140  /[[=ch=]]/  /[[=ch=]]/I
2141  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2142    
2143  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2144  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2145    
2146  /[[:upper:]]/i  /[[:upper:]]/Ii
2147  Capturing subpattern count = 0  Capturing subpattern count = 0
2148  Options: caseless  Options: caseless
2149  No first char  No first char
2150  No need char  No need char
2151      A      A
2152   0: A   0: A
2153      a      a
2154   0: a   0: a
2155    
2156  /[[:lower:]]/i  /[[:lower:]]/Ii
2157  Capturing subpattern count = 0  Capturing subpattern count = 0
2158  Options: caseless  Options: caseless
2159  No first char  No first char
2160  No need char  No need char
2161      A      A
2162   0: A   0: A
2163      a      a
2164   0: a   0: a
2165    
2166  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2167  Capturing subpattern count = 1  Capturing subpattern count = 1
2168  Options: caseless  Options: caseless
 Case state changes  
2169  No first char  No first char
2170  No need char  No need char
2171      ab      ab
# Line 2211  No need char Line 2179  No need char
2179   1: a   1: a
2180      Ab      Ab
2181  No match  No match
2182      AB      AB
2183  No match  No match
2184    
2185  /[\200-\410]/  /[\200-\110]/I
2186  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2187    
2188  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2189  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2190    
2191  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2192  Capturing subpattern count = 0  Capturing subpattern count = 0
2193  No options  No options
2194  First char = 'T'  First char = 'T'
2195  Need char = 'd'  Need char = 'd'
2196    
2197  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2198  Capturing subpattern count = 271  Capturing subpattern count = 271
2199  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2200  No options  No options
2201  No first char  No first char
2202  No need char  No need char
# Line 2507  No need char Line 2474  No need char
2474  270: ABC  270: ABC
2475  271: ABC  271: ABC
2476    
2477  /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
2478  Capturing subpattern count = 0  Capturing subpattern count = 0
2479  No options  No options
2480  First char = 'T'  First char = 'T'
2481  Need char = 't'  Need char = 't'
2482    
2483  /(main(O)?)+/  /(main(O)?)+/I
2484  Capturing subpattern count = 2  Capturing subpattern count = 2
2485  No options  No options
2486  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2492  Need char = 'n'
2492   0: mainOmain   0: mainOmain
2493   1: main   1: main
2494   2: O   2: O
2495    
2496  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2497  Capturing subpattern count = 1  Capturing subpattern count = 1
2498  No options  No options
2499  First char = 'T'  First char = 'T'
2500  Need char = 's'  Need char = 's'
2501    
2502  /^(a(b)?)+$/  /^(a(b)?)+$/I
2503  Capturing subpattern count = 2  Capturing subpattern count = 2
2504  Options: anchored  Options: anchored
2505  No first char  No first char
# Line 2541  No need char Line 2508  No need char
2508   0: aba   0: aba
2509   1: a   1: a
2510   2: b   2: b
2511    
2512  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2513  Capturing subpattern count = 2  Capturing subpattern count = 2
2514  Options: anchored  Options: anchored
2515  No first char  No first char
2516  No need char  No need char
2517      aabbaa      aabbaa
2518   0: aabbaa   0: aabbaa
2519   1: aa   1: aa
2520   2: bb   2: bb
2521    
2522  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2523  Capturing subpattern count = 2  Capturing subpattern count = 2
2524  Options: anchored  Options: anchored
2525  No first char  No first char
2526  No need char  No need char
2527      aabbaa      aabbaa
2528   0: aabbaa   0: aabbaa
2529   1: aa   1: aa
2530   2: bb   2: bb
2531    
2532  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2533  Capturing subpattern count = 2  Capturing subpattern count = 2
2534  Options: anchored  Options: anchored
2535  No first char  No first char
2536  No need char  No need char
2537      aabbaa      aabbaa
2538   0: aabbaa   0: aabbaa
2539   1: aa   1: aa
2540   2: bb   2: bb
2541    
2542  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2543  Capturing subpattern count = 1  Capturing subpattern count = 1
2544  Options: anchored  Options: anchored
2545  No first char  No first char
2546  No need char  No need char
2547      aabbaa      aabbaa
2548   0: aabbaa   0: aabbaa
2549   1: bb   1: bb
2550    
2551  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2552  Capturing subpattern count = 3  Capturing subpattern count = 3
2553  Options: anchored  Options: anchored
2554  No first char  No first char
2555  No need char  No need char
2556      aabbaa      aabbaa
2557   0: aabbaa   0: aabbaa
2558   1: aa   1: aa
2559   2: bb   2: bb
2560   3: b   3: b
2561    
2562  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2563  Capturing subpattern count = 2  Capturing subpattern count = 2
2564  Options: anchored  Options: anchored
2565  No first char  No first char
2566  No need char  No need char
2567      aabbaa      aabbaa
2568   0: aabbaa   0: aabbaa
2569   1: bb   1: bb
2570   2: b   2: b
2571    
2572  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2573  Capturing subpattern count = 1  Capturing subpattern count = 1
2574  Options: anchored  Options: anchored
2575  No first char  No first char
2576  No need char  No need char
2577      aabbaa      aabbaa
2578   0: aabbaa   0: aabbaa
2579   1: bb   1: bb
2580    
2581  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2582  Capturing subpattern count = 1  Capturing subpattern count = 1
2583  Options: anchored  Options: anchored
2584  No first char  No first char
2585  No need char  No need char
2586      aabbbaa      aabbbaa
2587   0: aabbbaa   0: aabbbaa
2588   1: bbb   1: bbb
2589    
2590  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2591  Capturing subpattern count = 1  Capturing subpattern count = 1
2592  Options: anchored  Options: anchored
2593  No first char  No first char
2594  No need char  No need char
2595      aabbbaa      aabbbaa
2596   0: aabbbaa   0: aabbbaa
2597   1: bbb   1: bbb
2598    
2599  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2600  Capturing subpattern count = 1  Capturing subpattern count = 1
2601  Options: anchored  Options: anchored
2602  No first char  No first char
2603  No need char  No need char
2604      aabbaa      aabbaa
2605   0: aabbaa   0: aabbaa
2606   1: b   1: b
2607    
2608  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2609  Capturing subpattern count = 1  Capturing subpattern count = 1
2610  Options: anchored  Options: anchored
2611  No first char  No first char
2612  No need char  No need char
2613      aabbbaa      aabbbaa
2614   0: aabbbaa   0: aabbbaa
2615   1: bb   1: bb
2616    
2617  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2618  Capturing subpattern count = 3  Capturing subpattern count = 3
2619  Options: anchored  Options: anchored
2620  No first char  No first char
2621  No need char  No need char
2622      aabbbaa      aabbbaa
2623   0: aabbbaa   0: aabbbaa
2624   1: aa   1: aa
2625   2: bbb   2: bbb
2626   3: bb   3: bb
2627    
2628  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2629  Capturing subpattern count = 3  Capturing subpattern count = 3
2630  Options: anchored  Options: anchored
2631  No first char  No first char
2632  No need char  No need char
2633      aabbbbaa      aabbbbaa
2634   0: aabbbbaa   0: aabbbbaa
2635   1: aa   1: aa
2636   2: bbbb   2: bbbb
2637   3: bb   3: bb
2638    
2639  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2640  Capturing subpattern count = 0  Capturing subpattern count = 0
2641  No options  No options
2642  First char = '-'  First char = '-'
2643  Need char = '-'  Need char = '-'
2644    
2645  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2646  ------------------------------------------------------------------  ------------------------------------------------------------------
2647    0   3 Bra 0          Bra
2648    3   3 Ket          Ket
2649    6     End          End
2650  ------------------------------------------------------------------  ------------------------------------------------------------------
2651  Capturing subpattern count = 0  Capturing subpattern count = 0
2652  Options: extended  Options: extended
2653  No first char  No first char
2654  No need char  No need char
2655    
2656  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2657  ------------------------------------------------------------------  ------------------------------------------------------------------
2658    0   5 Bra 0          Bra
2659    3     a          a
2660    5   5 Ket          Ket
2661    8     End          End
2662  ------------------------------------------------------------------  ------------------------------------------------------------------
2663  Capturing subpattern count = 0  Capturing subpattern count = 0
2664  Options: extended  Options: extended
2665  First char = 'a'  First char = 'a'
2666  No need char  No need char
2667    
2668  /[\s]/D  /[\s]/DZ
2669  ------------------------------------------------------------------  ------------------------------------------------------------------
2670    0  36 Bra 0          Bra
2671    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2672   36  36 Ket          Ket
2673   39     End          End
2674  ------------------------------------------------------------------  ------------------------------------------------------------------
2675  Capturing subpattern count = 0  Capturing subpattern count = 0
2676  No options  No options
2677  No first char  No first char
2678  No need char  No need char
2679    
2680  /[\S]/D  /[\S]/DZ
2681  ------------------------------------------------------------------  ------------------------------------------------------------------
2682    0  36 Bra 0          Bra
2683    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2684   36  36 Ket          Ket
2685   39     End          End
2686  ------------------------------------------------------------------  ------------------------------------------------------------------
2687  Capturing subpattern count = 0  Capturing subpattern count = 0
2688  No options  No options
2689  No first char  No first char
2690  No need char  No need char
2691    
2692  /a(?i)b/D  /a(?i)b/DZ
2693  ------------------------------------------------------------------  ------------------------------------------------------------------
2694    0   9 Bra 0          Bra
2695    3     a          a
2696    5  01 Opt       01 Opt
2697    7  NC b       NC b
2698    9   9 Ket          Ket
2699   12     End          End
2700  ------------------------------------------------------------------  ------------------------------------------------------------------
2701  Capturing subpattern count = 0  Capturing subpattern count = 0
2702  No options  No options
 Case state changes  
2703  First char = 'a'  First char = 'a'
2704  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2705      ab      ab
2706   0: ab   0: ab
2707      aB      aB
2708   0: aB   0: aB
2709      *** Failers      *** Failers
2710  No match  No match
2711      AB      AB
2712  No match  No match
2713    
2714  /(a(?i)b)/D  /(a(?i)b)/DZ
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716    0  17 Bra 0          Bra
2717    3   9 Bra 1          CBra 1
2718    6     a          a
2719    8  01 Opt       01 Opt
2720   10  NC b       NC b
2721   12   9 Ket          Ket
2722   15  00 Opt       00 Opt
2723   17  17 Ket          Ket
2724   20     End          End
2725  ------------------------------------------------------------------  ------------------------------------------------------------------
2726  Capturing subpattern count = 1  Capturing subpattern count = 1
2727  No options  No options
 Case state changes  
2728  First char = 'a'  First char = 'a'
2729  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2730      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2733  Need char = 'b' (caseless)
2733      aB      aB
2734   0: aB   0: aB
2735   1: aB   1: aB
2736      *** Failers      *** Failers
2737  No match  No match
2738      AB      AB
2739  No match  No match
2740    
2741  /   (?i)abc/xD  /   (?i)abc/IxDZ
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743    0   9 Bra 0          Bra
2744    3  NC abc       NC abc
2745    9   9 Ket          Ket
2746   12     End          End
2747  ------------------------------------------------------------------  ------------------------------------------------------------------
2748  Capturing subpattern count = 0  Capturing subpattern count = 0
2749  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2751  First char = 'a' (caseless)
2751  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2752    
2753  /#this is a comment  /#this is a comment
2754    (?i)abc/xD    (?i)abc/IxDZ
2755  ------------------------------------------------------------------  ------------------------------------------------------------------
2756    0   9 Bra 0          Bra
2757    3  NC abc       NC abc
2758    9   9 Ket          Ket
2759   12     End          End
2760  ------------------------------------------------------------------  ------------------------------------------------------------------
2761  Capturing subpattern count = 0  Capturing subpattern count = 0
2762  Options: caseless extended  Options: caseless extended
2763  First char = 'a' (caseless)  First char = 'a' (caseless)
2764  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2765    
2766  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2767  ------------------------------------------------------------------  ------------------------------------------------------------------
2768    0 603 Bra 0          Bra
2769    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2770  603 603 Ket          Ket
2771  606     End          End
2772  ------------------------------------------------------------------  ------------------------------------------------------------------
2773  Capturing subpattern count = 0  Capturing subpattern count = 0
2774  No options  No options
2775  First char = '1'  First char = '1'
2776  Need char = '0'  Need char = '0'
2777    
2778  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780    0 603 Bra 0          Bra
2781    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2782  603 603 Ket          Ket
2783  606     End          End
2784  ------------------------------------------------------------------  ------------------------------------------------------------------
2785  Capturing subpattern count = 0  Capturing subpattern count = 0
2786  No options  No options
2787  First char = '1'  First char = '1'
2788  Need char = '0'  Need char = '0'
2789    
2790  /\Q\E/D  /\Q\E/DZ
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
2792    0   3 Bra 0          Bra
2793    3   3 Ket          Ket
2794    6     End          End
2795  ------------------------------------------------------------------  ------------------------------------------------------------------
2796  Capturing subpattern count = 0  Capturing subpattern count = 0
2797  No options  No options
# Line 2837  No need char Line 2800  No need char
2800      \      \
2801   0:   0:
2802    
2803  /\Q\Ex/D  /\Q\Ex/DZ
2804  ------------------------------------------------------------------  ------------------------------------------------------------------
2805    0   5 Bra 0          Bra
2806    3     x          x
2807    5   5 Ket          Ket
2808    8     End          End
2809  ------------------------------------------------------------------  ------------------------------------------------------------------
2810  Capturing subpattern count = 0  Capturing subpattern count = 0
2811  No options  No options
2812  First char = 'x'  First char = 'x'
2813  No need char  No need char
2814    
2815  / \Q\E/D  / \Q\E/DZ
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817    0   5 Bra 0          Bra
2818    3  
2819    5   5 Ket          Ket
2820    8     End          End
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822  Capturing subpattern count = 0  Capturing subpattern count = 0
2823  No options  No options
2824  First char = ' '  First char = ' '
2825  No need char  No need char
2826    
2827  /a\Q\E/D  /a\Q\E/DZ
2828  ------------------------------------------------------------------  ------------------------------------------------------------------
2829    0   5 Bra 0          Bra
2830    3     a          a
2831    5   5 Ket          Ket
2832    8     End          End
2833  ------------------------------------------------------------------  ------------------------------------------------------------------
2834  Capturing subpattern count = 0  Capturing subpattern count = 0
2835  No options  No options
# Line 2876  No need char Line 2839  No need char
2839   0: a   0: a
2840    bca    bca
2841   0: a   0: a
2842    bac    bac
2843   0: a   0: a
2844    
2845  /a\Q\Eb/D  /a\Q\Eb/DZ
2846  ------------------------------------------------------------------  ------------------------------------------------------------------
2847    0   7 Bra 0          Bra
2848    3     ab          ab
2849    7   7 Ket          Ket
2850   10     End          End
2851  ------------------------------------------------------------------  ------------------------------------------------------------------
2852  Capturing subpattern count = 0  Capturing subpattern count = 0
2853  No options  No options
# Line 2893  Need char = 'b' Line 2856  Need char = 'b'
2856    abc    abc
2857   0: ab   0: ab
2858    
2859  /\Q\Eabc/D  /\Q\Eabc/DZ
2860  ------------------------------------------------------------------  ------------------------------------------------------------------
2861    0   9 Bra 0          Bra
2862    3     abc          abc
2863    9   9 Ket          Ket
2864   12     End          End
2865  ------------------------------------------------------------------  ------------------------------------------------------------------
2866  Capturing subpattern count = 0  Capturing subpattern count = 0
2867  No options  No options
2868  First char = 'a'  First char = 'a'
2869  Need char = 'c'  Need char = 'c'
2870    
2871  /x*+\w/D  /x*+\w/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0  12 Bra 0          Bra
2874    3   5 Once          x*+
2875    6     x*          \w
2876    8   5 Ket          Ket
2877   11     \w          End
  12  12 Ket  
  15     End  
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2924  No need char Line 2884  No need char
2884   0: F   0: F
2885      xxxxx      xxxxx
2886  No match  No match
2887    
2888  /x?+/D  /x?+/DZ
2889  ------------------------------------------------------------------  ------------------------------------------------------------------
2890    0  11 Bra 0          Bra
2891    3   5 Once          x?+
2892    6     x?          Ket
2893    8   5 Ket          End
  11  11 Ket  
  14     End  
2894  ------------------------------------------------------------------  ------------------------------------------------------------------
2895  Capturing subpattern count = 0  Capturing subpattern count = 0
2896  No options  No options
2897  No first char  No first char
2898  No need char  No need char
2899    
2900  /x++/D  /x++/DZ
2901  ------------------------------------------------------------------  ------------------------------------------------------------------
2902    0  11 Bra 0          Bra
2903    3   5 Once          x++
2904    6     x+          Ket
2905    8   5 Ket          End
  11  11 Ket  
  14     End  
2906  ------------------------------------------------------------------  ------------------------------------------------------------------
2907  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2908  No options  No options
2909  First char = 'x'  First char = 'x'
2910  No need char  No need char
2911    
2912  /x{1,3}+/D  /x{1,3}+/DZ
2913  ------------------------------------------------------------------  ------------------------------------------------------------------
2914    0  15 Bra 0          Bra
2915    3   9 Once          Once
2916    6     x          x
2917    8     x{,2}          x{0,2}
2918   12   9 Ket          Ket
2919   15  15 Ket          Ket
2920   18     End          End
2921  ------------------------------------------------------------------  ------------------------------------------------------------------
2922  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2923  No options  No options
2924  First char = 'x'  First char = 'x'
2925  No need char  No need char
2926    
2927  /(x)*+/D  /(x)*+/DZ
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929    0  18 Bra 0          Bra
2930    3  12 Once          Once
2931    6     Brazero          Brazero
2932    7   5 Bra 1          CBra 1
2933   10     x          x
2934   12   5 KetRmax          KetRmax
2935   15  12 Ket          Ket
2936   18  18 Ket          Ket
2937   21     End          End
2938  ------------------------------------------------------------------  ------------------------------------------------------------------
2939  Capturing subpattern count = 1  Capturing subpattern count = 1
2940  No options  No options
2941  No first char  No first char
2942  No need char  No need char
2943    
2944  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2945  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2946  Options: anchored  Options: anchored
2947  No first char  No first char
2948  No need char  No need char
# Line 3000  No need char Line 2953  No need char
2953  No match  No match
2954      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2955  No match  No match
2956    
2957  /(\d++)(\w)/  /(\d++)(\w)/I
2958  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2959  No options  No options
2960  No first char  No first char
2961  No need char  No need char
# Line 3013  No need char Line 2965  No need char
2965   2: a   2: a
2966      *** Failers      *** Failers
2967  No match  No match
2968      12345+      12345+
2969  No match  No match
2970    
2971  /a++b/  /a++b/I
2972  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2973  No options  No options
2974  First char = 'a'  First char = 'a'
2975  Need char = 'b'  Need char = 'b'
2976      aaab      aaab
2977   0: aaab   0: aaab
2978    
2979  /(a++b)/  /(a++b)/I
2980  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2981  No options  No options
2982  First char = 'a'  First char = 'a'
2983  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 2985  Need char = 'b'
2985   0: aaab   0: aaab
2986   1: aaab   1: aaab
2987    
2988  /(a++)b/  /(a++)b/I
2989  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2990  No options  No options
2991  First char = 'a'  First char = 'a'
2992  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 2994  Need char = 'b'
2994   0: aaab   0: aaab
2995   1: aaa   1: aaa
2996    
2997  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2999  No options  No options
3000  No first char  No first char
3001  No need char  No need char
3002      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3003   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3004   1: x   1: x
3005    
3006  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3007  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3008  No options  No options
3009  First char = '('  First char = '('
3010  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3016  Need char = ')'
3016   1: xyz   1: xyz
3017      *** Failers      *** Failers
3018  No match  No match
3019      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3020  No match  No match
3021    
3022  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3023  ------------------------------------------------------------------  ------------------------------------------------------------------
3024    0  53 Bra 0          Bra
3025    3  47 Once          Once
3026    6   9 Bra 1          CBra 1
3027    9     abc          abc
3028   15   9 Ket          Ket
3029   18     Brazero          Brazero
3030   19  28 Bra 0          Bra
3031   22   9 Bra 1          CBra 1
3032   25     abc          abc
3033   31   9 Ket          Ket
3034   34     Brazero          Brazero
3035   35   9 Bra 1          CBra 1
3036   38     abc          abc
3037   44   9 Ket          Ket
3038   47  28 Ket          Ket
3039   50  47 Ket          Ket
3040   53  53 Ket          Ket
3041   56     End          End
3042  ------------------------------------------------------------------  ------------------------------------------------------------------
3043  Capturing subpattern count = 1  Capturing subpattern count = 1
3044  No options  No options
3045  First char = 'a'  First char = 'a'
3046  Need char = 'c'  Need char = 'c'
3047    
3048  /a+?+/  /a+?+/I
3049  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3050    
3051  /a{2,3}?+b/  /a{2,3}?+b/I
3052  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3053    
3054  /(?U)a+?+/  /(?U)a+?+/I
3055  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3056    
3057  /a{2,3}?+b/U  /a{2,3}?+b/IU
3058  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3059    
3060  /x(?U)a++b/D  /x(?U)a++b/DZ
3061  ------------------------------------------------------------------  ------------------------------------------------------------------
3062    0  15 Bra 0          Bra
3063    3     x          x
3064    5   5 Once          a++
3065    8     a+          b
3066   10   5 Ket          Ket
3067   13     b          End
  15  15 Ket  
  18     End  
3068  ------------------------------------------------------------------  ------------------------------------------------------------------
3069  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3070  No options  No options
3071  First char = 'x'  First char = 'x'
3072  Need char = 'b'  Need char = 'b'
3073      xaaaab      xaaaab
3074   0: xaaaab   0: xaaaab
3075    
3076  /(?U)xa++b/D  /(?U)xa++b/DZ
3077  ------------------------------------------------------------------  ------------------------------------------------------------------
3078    0  15 Bra 0          Bra
3079    3     x          x
3080    5   5 Once          a++
3081    8     a+          b
3082   10   5 Ket          Ket
3083   13     b          End
  15  15 Ket  
  18     End  
3084  ------------------------------------------------------------------  ------------------------------------------------------------------
3085  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3086  Options: ungreedy  Options: ungreedy
3087  First char = 'x'  First char = 'x'
3088  Need char = 'b'  Need char = 'b'
3089      xaaaab      xaaaab
3090   0: xaaaab   0: xaaaab
3091    
3092  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3093  ------------------------------------------------------------------  ------------------------------------------------------------------
3094    0 106 Bra 0          Bra
3095    3     ^          ^
3096    4  99 Bra 1          CBra 1
3097    7   5 Bra 2          CBra 2
3098   10     a+          a+
3099   12   5 Ket          Ket
3100   15  37 Bra 3          CBra 3
3101   18     [ab]+?          [ab]+?
3102   52  37 Ket          Ket
3103   55  37 Bra 4          CBra 4
3104   58     [bc]+          [bc]+
3105   92  37 Ket          Ket
3106   95   5 Bra 5          CBra 5
3107   98     \w*          \w*
3108  100   5 Ket          Ket
3109  103  99 Ket          Ket
3110  106 106 Ket          Ket
3111  109     End          End
3112  ------------------------------------------------------------------  ------------------------------------------------------------------
3113  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3114  Options: anchored  Options: anchored
3115  No first char  No first char
3116  No need char  No need char
3117    
3118  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3119  ------------------------------------------------------------------  ------------------------------------------------------------------
3120    0  10 Bra 0          Bra
3121    3     ^          ^
3122    4     x          x
3123    6     a+?          a++
3124    8     b          b
3125   10  10 Ket          Ket
3126   13     End          End
3127  ------------------------------------------------------------------  ------------------------------------------------------------------
3128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3129  Options: anchored  Options: anchored
3130  No first char  No first char
3131  Need char = 'b'  Need char = 'b'
3132    
3133  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135    0  16 Bra 0          Bra
3136    3     ^          ^
3137    4     x          x
3138    6   5 Bra 1          CBra 1
3139    9     a+?          a+?
3140   11   5 Ket          Ket
3141   14     b          b
3142   16  16 Ket          Ket
3143   19     End          End
3144  ------------------------------------------------------------------  ------------------------------------------------------------------
3145  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3146  Options: anchored  Options: anchored
3147  No first char  No first char
3148  Need char = 'b'  Need char = 'b'
3149    
3150  /[.x.]/  /[.x.]/I
3151  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3152    
3153  /[=x=]/  /[=x=]/I
3154  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3155    
3156  /[:x:]/  /[:x:]/I
3157  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
3158    
3159  /\l/  /\l/I
3160  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
3161    
3162  /\L/  /\L/I
3163  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
3164    
3165  /\N{name}/  /\N{name}/I
3166  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
3167    
3168  /\u/  /\u/I
3169  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
3170    
3171  /\U/  /\U/I
3172  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
3173    
3174  /[/  /[/I
3175  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3176    
3177  /[a-/  /[a-/I
3178  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3179    
3180  /[[:space:]/  /[[:space:]/I
3181  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3182    
3183  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3184  ------------------------------------------------------------------  ------------------------------------------------------------------
3185    0  36 Bra 0          Bra
3186    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3187   36  36 Ket          Ket
3188   39     End          End
3189  ------------------------------------------------------------------  ------------------------------------------------------------------
3190  Capturing subpattern count = 0  Capturing subpattern count = 0
3191  No options  No options
3192  No first char  No first char
3193  No need char  No need char
3194    
3195  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
3197    0  36 Bra 0          Bra
3198    3     [\x09-\x0d ]          [\x09-\x0d ]
3199   36  36 Ket          Ket
3200   39     End          End
3201  ------------------------------------------------------------------  ------------------------------------------------------------------
3202  Capturing subpattern count = 0  Capturing subpattern count = 0
3203  No options  No options
3204  No first char  No first char
3205  No need char  No need char
3206    
3207  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209    0  36 Bra 0          Bra
3210    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3211   36  36 Ket          Ket
3212   39     End          End
3213  ------------------------------------------------------------------  ------------------------------------------------------------------
3214  Capturing subpattern count = 0  Capturing subpattern count = 0
3215  No options  No options
3216  No first char  No first char
3217  No need char  No need char
3218    
3219  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3220  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3221  Options: extended  Options: extended
3222  First char = '<'  First char = '<'
3223  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3229  Need char = '>'
3229   0: <abc <123> hij>   0: <abc <123> hij>
3230      <abc <def> hij>      <abc <def> hij>
3231   0: <def>   0: <def>
3232      <abc<>def>      <abc<>def>
3233   0: <abc<>def>   0: <abc<>def>
3234      <abc<>      <abc<>
3235   0: <>   0: <>
3236      *** Failers      *** Failers
3237  No match  No match
3238      <abc      <abc
3239  No match  No match
3240    
3241  |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  
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
3243    0 822 Bra 0          Bra
3244    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
3245  821     \b          \b
3246  822 822 Ket          Ket
3247  825     End          End
3248  ------------------------------------------------------------------  ------------------------------------------------------------------
3249  Capturing subpattern count = 0  Capturing subpattern count = 0
3250  No options  No options
3251  First char = '8'  First char = '8'
3252  Need char = 'X'  Need char = 'X'
3253    
3254  |\$\<\.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  
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256    0 812 Bra 0          Bra
3257    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
3258  811     \b          \b
3259  812 812 Ket          Ket
3260  815     End          End
3261  ------------------------------------------------------------------  ------------------------------------------------------------------
3262  Capturing subpattern count = 0  Capturing subpattern count = 0
3263  No options  No options
# Line 3335  Need char = 'X' Line 3267  Need char = 'X'
3267  /(.*)\d+\1/I  /(.*)\d+\1/I
3268  Capturing subpattern count = 1  Capturing subpattern count = 1
3269  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3270  No options  No options
3271  No first char  No first char
3272  No need char  No need char
3273    
3274  /(.*)\d+/I  /(.*)\d+/I
3275  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3276  No options  No options
3277  First char at start or follows \n  First char at start or follows newline
3278  No need char  No need char
3279    
3280  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3281  Capturing subpattern count = 1  Capturing subpattern count = 1
3282  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3283  Options: dotall  Options: dotall
3284  No first char  No first char
3285  No need char  No need char
3286    
3287  /(.*)\d+/Is  /(.*)\d+/Is
3288  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3289  Options: anchored dotall  Options: anchored dotall
3290  No first char  No first char
3291  No need char  No need char
# Line 3365  No need char Line 3293  No need char
3293  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3294  Capturing subpattern count = 2  Capturing subpattern count = 2
3295  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3296  No options  No options
3297  First char at start or follows \n  First char at start or follows newline
3298  Need char = 'z'  Need char = 'z'
3299    
3300  /((.*))\d+\1/I  /((.*))\d+\1/I
3301  Capturing subpattern count = 2  Capturing subpattern count = 2
3302  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3303  No options  No options
3304  No first char  No first char
3305  No need char  No need char
# Line 3381  No need char Line 3307  No need char
3307   0: bc123bc   0: bc123bc
3308   1: bc   1: bc
3309   2: bc   2: bc
3310    
3311  /a[b]/I  /a[b]/I
3312  Capturing subpattern count = 0  Capturing subpattern count = 0
3313  No options  No options
# Line 3390  Need char = 'b' Line 3316  Need char = 'b'
3316    
3317  /(?=a).*/I  /(?=a).*/I
3318  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3319  No options  No options
3320  First char = 'a'  First char = 'a'
3321  No need char  No need char
3322    
3323  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3324  Capturing subpattern count = 0  Capturing subpattern count = 0
3325  Options: caseless  Options: caseless
3326  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3329  Need char = 'z' (caseless)
3329  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3330  Capturing subpattern count = 0  Capturing subpattern count = 0
3331  No options  No options
 Case state changes  
3332  First char = 'a'  First char = 'a'
3333  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3334    
# Line 3438  No options Line 3362  No options
3362  No first char  No first char
3363  Need char = 'a'  Need char = 'a'
3364    
3365  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3366  Capturing subpattern count = 0  Capturing subpattern count = 1
3367  No options  No options
3368  First char = 'a'  First char = 'a'
3369  No need char  No need char
3370    
3371  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3372  Capturing subpattern count = 0  Capturing subpattern count = 1
3373  No options  No options
3374  First char = 'a'  First char = 'a'
3375  Need char = 'z'  Need char = 'z'
3376    
3377  /(?(1)abz)/I  /(?(1)abz)(.)/I
3378  Capturing subpattern count = 0  Capturing subpattern count = 1
3379  No options  No options
3380  No first char  No first char
3381  No need char  No need char
3382    
3383  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3384  Capturing subpattern count = 0  Capturing subpattern count = 1
3385  No options  No options
3386  No first char  No first char
3387  Need char = '3'  Need char = '3'
# Line 3524  No options Line 3448  No options
3448  First char = 'a'  First char = 'a'
3449  Need char = 'b'  Need char = 'b'
3450    
3451  /^a/mI  /^a/Im
3452  Capturing subpattern count = 0  Capturing subpattern count = 0
3453  Options: multiline  Options: multiline
3454  First char at start or follows \n  First char at start or follows newline
3455  Need char = 'a'  Need char = 'a'
3456    abcde    abcde
3457   0: a   0: a
3458    xy\nabc    xy\nabc
3459   0: a   0: a
3460    *** Failers    *** Failers
3461  No match  No match
3462    xyabc    xyabc
3463  No match  No match
3464    
3465  /c|abc/I  /c|abc/I
# Line 3554  Starting byte set: A B a b Line 3478  Starting byte set: A B a b
3478  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3479  Capturing subpattern count = 0  Capturing subpattern count = 0
3480  No options  No options
 Case state changes  
3481  No first char  No first char
3482  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3483  Starting byte set: a b  Starting byte set: a b
3484    
3485  /abc(?C)def/  /abc(?C)def/I
3486  Capturing subpattern count = 0  Capturing subpattern count = 0
3487  No options  No options
3488  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3491  Need char = 'f'
3491  --->abcdef  --->abcdef
3492    0 ^  ^       d    0 ^  ^       d
3493   0: abcdef   0: abcdef
3494      1234abcdef      1234abcdef
3495  --->1234abcdef  --->1234abcdef
3496    0     ^  ^       d    0     ^  ^       d
3497   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3499  Need char = 'f'
3499  No match  No match
3500      abcxyz      abcxyz
3501  No match  No match
3502      abcxyzf      abcxyzf
3503  --->abcxyzf  --->abcxyzf
3504    0 ^  ^        d    0 ^  ^        d
3505  No match  No match
3506    
3507  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3508  Capturing subpattern count = 0  Capturing subpattern count = 0
3509  No options  No options
3510  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3514  Need char = 'f'
3514    0    ^  ^       d    0    ^  ^       d
3515    1    ^    ^     f    1    ^    ^     f
3516   0: abcdef   0: abcdef
3517    
3518  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3519  Capturing subpattern count = 0  Capturing subpattern count = 0
3520  No options  No options
3521  No first char  No first char
# Line 3607  Need char = 'f' Line 3530  Need char = 'f'
3530   0: 4abcdef   0: 4abcdef
3531      *** Failers      *** Failers
3532  No match  No match
3533      abcdef      abcdef
3534  --->abcdef  --->abcdef
3535    1 ^          \d    1 ^          \d
3536    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3539  No match
3539    1     ^      \d    1     ^      \d
3540    1      ^     \d    1      ^     \d
3541  No match  No match
3542    
3543  /(?C255)ab/  /(?C255)ab/I
3544  Capturing subpattern count = 0  Capturing subpattern count = 0
3545  No options  No options
3546  First char = 'a'  First char = 'a'
3547  Need char = 'b'  Need char = 'b'
3548    
3549  /(?C256)ab/  /(?C256)ab/I
3550  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3551    
3552  /(?Cab)xx/  /(?Cab)xx/I
3553  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3554    
3555  /(?C12vr)x/  /(?C12vr)x/I
3556  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3557    
3558  /abc(?C)def/  /abc(?C)def/I
3559  Capturing subpattern count = 0  Capturing subpattern count = 0
3560  No options  No options
3561  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3567  No match
3567    0         ^  ^       d    0         ^  ^       d
3568   0: abcdef   0: abcdef
3569    
3570  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3571  Capturing subpattern count = 1  Capturing subpattern count = 1
3572  No options  No options
3573  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3578  Need char = 'f'
3578    1    ^    ^     f    1    ^    ^     f
3579   0: abcdef   0: abcdef
3580   1: abc   1: abc
3581      123abcdef\C+      123abcdef\C+
3582  Callout 0: last capture = 1  Callout 0: last capture = 1
3583   0: <unset>   0: <unset>
3584   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3591  Callout 1: last capture = 1
3591         ^    ^     f         ^    ^     f
3592   0: abcdef   0: abcdef
3593   1: abc   1: abc
3594      123abcdef\C-      123abcdef\C-
3595   0: abcdef   0: abcdef
3596   1: abc   1: abc
3597      *** Failers      *** Failers
3598  No match  No match
3599      123abcdef\C!1      123abcdef\C!1
3600  --->123abcdef  --->123abcdef
3601    0    ^  ^       d    0    ^  ^       d
3602    1    ^    ^     f    1    ^    ^     f
3603  No match  No match
3604    
3605  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3606  Capturing subpattern count = 1  Capturing subpattern count = 1
3607  No options  No options
3608  No first char  No first char
# Line 3692  No need char Line 3615  No need char
3615    1 ^        ^    )    1 ^        ^    )
3616   0: abcabcabc   0: abcabcabc
3617   1: abc   1: abc
3618      abcabc\C!1!3      abcabc\C!1!3
3619  --->abcabc  --->abcabc
3620    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3621    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3626  No need char
3626  --->*** Failers  --->*** Failers
3627    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3628   0:   0:
3629      abcabcabc\C!1!3      abcabcabc\C!1!3
3630  --->abcabcabc  --->abcabcabc
3631    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3632    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3635  No need char
3635   0: abcabc   0: abcabc
3636   1: abc   1: abc
3637    
3638  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3639  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3640  No options  No options
3641  No first char  No first char
3642  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3659  Callout 0: last capture = 1
3659      ^     ^    )      ^     ^    )
3660   0: 123456   0: 123456
3661   1: 456   1: 456
3662      123456789\C+      123456789\C+
3663  Callout 0: last capture = -1  Callout 0: last capture = -1
3664   0: <unset>   0: <unset>
3665  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3677  Callout 0: last capture = 1
3677   0: 123456789   0: 123456789
3678   1: 789   1: 789
3679    
3680  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3681  Capturing subpattern count = 2  Capturing subpattern count = 2
3682  No options  No options
3683  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3696  Callout 1: last capture = -1
3696   0: xyzabc   0: xyzabc
3697   1: xyzabc   1: xyzabc
3698    
3699  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3700  Capturing subpattern count = 3  Capturing subpattern count = 3
3701  No options  No options
3702  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3718  Callout 1: last capture = 1
3718   1: X   1: X
3719   2: xyzabc   2: xyzabc
3720    
3721  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3722  Capturing subpattern count = 1  Capturing subpattern count = 1
3723  No options  No options
3724  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3731  Callout 0: last capture = 1
3731      ^          a      ^          a
3732   0: abcdef   0: abcdef
3733   1: abc   1: abc
3734    
3735  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3736  Capturing subpattern count = 1  Capturing subpattern count = 1
3737  No options  No options
3738  First char = 'a'  First char = 'a'
3739  Need char = 'z'  Need char = 'z'
3740      abcxyz\C+      abcxyz\C+
3741  Callout 1: last capture = 1  Callout 1: last capture = 1
3742   0: <unset>   0: <unset>
3743   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3749  Callout 2: last capture = -1
3749      ^          a      ^          a
3750   0: abcxyz   0: abcxyz
3751    
3752  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3753  Capturing subpattern count = 1  Capturing subpattern count = 1
3754  No options  No options
3755  First char = 'x'  First char = 'x'
# Line 3840  Callout 0: last capture = 1 Line 3762  Callout 0: last capture = 1
3762         ^       )         ^       )
3763   0: xyz   0: xyz
3764   1: abc   1: abc
3765    
3766  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3767  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3768  No options  No options
3769  First char = 'a'  First char = 'a'
3770  Need char = 'b'  Need char = 'b'
# Line 3867  Callout data = 1 Line 3788  Callout data = 1
3788  Callout data = 1  Callout data = 1
3789  No match  No match
3790    
3791  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3792  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3793  No options  No options
3794  First char = 'a'  First char = 'a'
3795  Need char = 'b'  Need char = 'b'
# Line 3892  Callout data = 1 Line 3812  Callout data = 1
3812    1 ^        ^    1 ^        ^
3813  Callout data = 1  Callout data = 1
3814  No match  No match
3815    
3816  /(?C)abc/  /(?C)abc/I
3817  Capturing subpattern count = 0  Capturing subpattern count = 0
3818  No options  No options
3819  First char = 'a'  First char = 'a'
3820  Need char = 'c'  Need char = 'c'
3821    
3822  /(?C)^abc/  /(?C)^abc/I
3823  Capturing subpattern count = 0  Capturing subpattern count = 0
3824  Options: anchored  Options: anchored
3825  No first char  No first char
3826  No need char  No need char
3827    
3828  /(?C)a|b/S  /(?C)a|b/IS
3829  Capturing subpattern count = 0  Capturing subpattern count = 0
3830  No options  No options
3831  No first char  No first char
3832  No need char  No need char
3833  Starting byte set: a b  Starting byte set: a b
3834    
3835  /(?R)/  /(?R)/I
3836  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3837    
3838  /(a|(?R))/  /(a|(?R))/I
3839  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3840    
3841  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3842  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3843    
3844  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3845  Capturing subpattern count = 3  Capturing subpattern count = 3
3846  No options  No options
3847  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3870  No need char
3870   3: xxab   3: xxab
3871      *** Failers      *** Failers
3872  No match  No match
3873      xyab      xyab
3874  No match  No match
3875    
3876  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3877  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3878    
3879  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3880  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3881    
3882  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3883  Capturing subpattern count = 1  Capturing subpattern count = 1
3884  Options: anchored  Options: anchored
3885  No first char  No first char
# Line 3970  No need char Line 3890  No need char
3890      a(b)c      a(b)c
3891   0: a(b)c   0: a(b)c
3892   1: c   1: c
3893      a(b(c))d      a(b(c))d
3894   0: a(b(c))d   0: a(b(c))d
3895   1: d   1: d
3896      *** Failers)      *** Failers)
3897  No match  No match
3898      a(b(c)d      a(b(c)d
3899  No match  No match
3900    
3901  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3902  Capturing subpattern count = 1  Capturing subpattern count = 1
3903  Options: anchored  Options: anchored
3904  No first char  No first char
# Line 3993  Need char = '<' Line 3913  Need char = '<'
3913   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3914   1: (1(2)3)   1: (1(2)3)
3915    
3916  /(a(?1)b)/D  /(a(?1)b)/DZ
3917  ------------------------------------------------------------------  ------------------------------------------------------------------
3918    0  16 Bra 0          Bra
3919    3  10 Bra 1          CBra 1
3920    6     a          a
3921    8   3 Recurse          Once
3922   11     b          Recurse
3923   13  10 Ket          Ket
3924   16  16 Ket          b
3925   19     End          Ket
3926            Ket
3927            End
3928  ------------------------------------------------------------------  ------------------------------------------------------------------
3929  Capturing subpattern count = 1  Capturing subpattern count = 1
3930  No options  No options
3931  First char = 'a'  First char = 'a'
3932  Need char = 'b'  Need char = 'b'
3933    
3934  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3935  ------------------------------------------------------------------  ------------------------------------------------------------------
3936    0  22 Bra 0          Bra
3937    3  16 Bra 1          CBra 1
3938    6     a          a
3939    8   6 Bra 0          Once
3940   11   3 Recurse          Recurse
3941   14   6 KetRmax          KetRmax
3942   17     b          b
3943   19  16 Ket          Ket
3944   22  22 Ket          Ket
3945   25     End          End
3946  ------------------------------------------------------------------  ------------------------------------------------------------------
3947  Capturing subpattern count = 1  Capturing subpattern count = 1
3948  No options  No options
3949  First char = 'a'  First char = 'a'
3950  Need char = 'b'  Need char = 'b'
3951    
3952  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
3953  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3954  Options: anchored  Options: anchored
3955  No first char  No first char
3956  No need char  No need char
# Line 4081  No need char Line 3968  No need char
3968  No match  No match
3969      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3970  No match  No match
3971    
3972  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3973  Capturing subpattern count = 2  Capturing subpattern count = 2
3974  Options: anchored  Options: anchored
3975  No first char  No first char
# Line 4091  No need char Line 3978  No need char
3978   0: xyz   0: xyz
3979   1: xyz   1: xyz
3980   2: y   2: y
3981      xxyzxyzz      xxyzxyzz
3982   0: xxyzxyzz   0: xxyzxyzz
3983   1: xxyzxyzz   1: xxyzxyzz
3984   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 3986  No need char
3986  No match  No match
3987      xxyzz      xxyzz
3988  No match  No match
3989      xxyzxyzxyzz      xxyzxyzxyzz
3990  No match  No match
3991    
3992  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
3993  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3994  Options: extended  Options: extended
3995  First char = '<'  First char = '<'
3996  Need char = '>'  Need char = '>'
# Line 4124  Need char = '>' Line 4010  Need char = '>'
4010   0: <def>   0: <def>
4011   1: <def>   1: <def>
4012   2: <def>   2: <def>
4013      <abc<>def>      <abc<>def>
4014   0: <abc<>def>   0: <abc<>def>
4015   1: <abc<>def>   1: <abc<>def>
4016   2: <abc<>def>   2: <abc<>def>
4017      <abc<>      <abc<>
4018   0: <>   0: <>
4019   1: <>   1: <>
4020   2: <>   2: <>
# Line 4137  No match Line 4023  No match
4023      <abc      <abc
4024  No match  No match
4025    
4026  /(?1)/  /(?1)/I
4027  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4028    
4029  /((?2)(abc)/  /((?2)(abc)/I
4030  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4031    
4032  /^(abc)def(?1)/  /^(abc)def(?1)/I
4033  Capturing subpattern count = 1  Capturing subpattern count = 1
4034  Options: anchored  Options: anchored
4035  No first char  No first char
# Line 4152  No need char Line 4038  No need char
4038   0: abcdefabc   0: abcdefabc
4039   1: abc   1: abc
4040    
4041  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4042  Capturing subpattern count = 1  Capturing subpattern count = 1
4043  Options: anchored  Options: anchored
4044  No first char  No first char
# Line 4163  No need char Line 4049  No need char
4049      a=b      a=b
4050   0: a=b   0: a=b
4051   1: a   1: a
4052      a=bc      a=bc
4053   0: a=bc   0: a=bc
4054   1: a   1: a
4055    
4056  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4057  Capturing subpattern count = 2  Capturing subpattern count = 2
4058  Options: anchored  Options: anchored
4059  No first char  No first char
# Line 4180  No need char Line 4066  No need char
4066   0: a=b   0: a=b
4067   1: a   1: a
4068   2: b   2: b
4069      a=bc      a=bc
4070   0: a=bc   0: a=bc
4071   1: a   1: a
4072   2: c   2: c
4073    
4074  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4075  ------------------------------------------------------------------  ------------------------------------------------------------------
4076    0  28 Bra 0          Bra
4077    3     a          a
4078    5   5 Bra 1          CBra 1
4079    8     b          b
4080   10   5 Alt          Alt
4081   13     c          c
4082   15  10 Ket          Ket
4083   18     d          d
4084   20   5 Bra 2          CBra 2
4085   23     e          e
4086   25   5 Ket          Ket
4087   28  28 Ket          Ket
4088   31     End          End
4089  ------------------------------------------------------------------  ------------------------------------------------------------------
4090  Capturing subpattern count = 2  Capturing subpattern count = 2
4091  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4212  Need char = 'e' Line 4098  Need char = 'e'
4098   0: abde   0: abde
4099   1: b   1: b
4100   2: e   2: e
4101      acde      acde
4102   0: acde   0: acde
4103   1: c   1: c
4104   2: e   2: e
4105    
4106  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4107  ------------------------------------------------------------------  ------------------------------------------------------------------
4108    0  35 Bra 0          Bra
4109    3  21 Bra 0          Bra
4110    6     a          a
4111    8  13 Bra 1          CBra 1
4112   11     c          c
4113   13   5 Bra 2          CBra 2
4114   16     d          d
4115   18   5 Ket          Ket
4116   21  13 Ket          Ket
4117   24  21 Ket          Ket
4118   27   5 Bra 3          CBra 3
4119   30     a          a
4120   32   5 Ket          Ket
4121   35  35 Ket          Ket
4122   38     End          End
4123  ------------------------------------------------------------------  ------------------------------------------------------------------
4124  Capturing subpattern count = 3  Capturing subpattern count = 3
4125  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4244  No options Line 4130  No options
4130  First char = 'a'  First char = 'a'
4131  Need char = 'a'  Need char = 'a'
4132    
4133  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4134  ------------------------------------------------------------------  ------------------------------------------------------------------
4135    0  28 Bra 0          Bra
4136    3   5 Bra 1          CBra 1
4137    6     a          a
4138    8   5 Ket          Ket
4139   11     Any          Any
4140   12     Any          Any
4141   13     Any          Any
4142   14     \1          \1
4143   17     bbb          bbb
4144   23   3 Recurse          Once
4145   26     d          Recurse
4146   28  28 Ket          Ket
4147   31     End          d
4148            Ket
4149            End
4150  ------------------------------------------------------------------  ------------------------------------------------------------------
4151  Capturing subpattern count = 1  Capturing subpattern count = 1
4152  Max back reference = 1  Max back reference = 1
# Line 4268  No options Line 4156  No options
4156  First char = 'a'  First char = 'a'
4157  Need char = 'd'  Need char = 'd'
4158    
4159  /^\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
4160  Capturing subpattern count = 4  Capturing subpattern count = 4
4161  Max back reference = 4  Max back reference = 4
4162  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4276  Named capturing subpatterns: Line 4164  Named capturing subpatterns:
4164    one     1    one     1
4165    three   3    three   3
4166    two     2    two     2
 Partial matching not supported  
4167  Options: anchored caseless  Options: anchored caseless
4168  No first char  No first char
4169  No need char  No need char
# Line 4296  No need char Line 4183  No need char
4183   2: <unset>   2: <unset>
4184   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4185   4: A   4: A
4186      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4187   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4188   1: <unset>   1: <unset>
4189   2: <unset>   2: <unset>
# Line 4304  No need char Line 4191  No need char
4191   4: A   4: A
4192      *** Failers      *** Failers
4193  No match  No match
4194      The quick brown fox      The quick brown fox
4195  No match  No match
4196    
4197  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4198  Capturing subpattern count = 1  Capturing subpattern count = 1
4199  Max back reference = 1  Max back reference = 1
4200  No options  No options
# Line 4316  No need char Line 4203  No need char
4203    bb    bb
4204   0: bb   0: bb
4205   1: b   1: b
4206    bbaa    bbaa
4207   0: bba   0: bba
4208   1: b   1: b
4209    
4210  /(.*)a/sI  /(.*)a/Is
4211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4212  Options: anchored dotall  Options: anchored dotall
4213  No first char  No first char
4214  Need char = 'a'  Need char = 'a'
4215    
4216  /(.*)a\1/sI  /(.*)a\1/Is
4217  Capturing subpattern count = 1  Capturing subpattern count = 1
4218  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4219  Options: dotall  Options: dotall
4220  No first char  No first char
4221  Need char = 'a'  Need char = 'a'
4222    
4223  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4224  Capturing subpattern count = 2  Capturing subpattern count = 2
4225  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4226  Options: anchored dotall  Options: anchored dotall
4227  No first char  No first char
4228  Need char = 'b'  Need char = 'b'
4229    
4230  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4231  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4232  Options: anchored dotall  Options: anchored dotall
4233  No first char  No first char
4234  Need char = 'z'  Need char = 'z'
4235    
4236  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4237  Capturing subpattern count = 3  Capturing subpattern count = 3
4238  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4239  Options: dotall  Options: dotall
4240  No first char  No first char
4241  Need char = 'z'  Need char = 'z'
4242    
4243  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4244  Capturing subpattern count = 3  Capturing subpattern count = 3
4245  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4246  Options: dotall  Options: dotall
4247  No first char  No first char
4248  Need char = 'z'  Need char = 'z'
4249    
4250  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4251  Capturing subpattern count = 3  Capturing subpattern count = 3
4252  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4253  Options: dotall  Options: dotall
4254  No first char  No first char
4255  Need char = 'z'  Need char = 'z'
4256    
4257  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4258  Capturing subpattern count = 3  Capturing subpattern count = 3
4259  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4260  Options: anchored dotall  Options: anchored dotall
4261  No first char  No first char
4262  Need char = 'z'  Need char = 'z'
4263    
4264  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4265  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4266  Options: anchored dotall  Options: anchored dotall
4267  No first char  No first char
4268  No need char  No need char
4269    
4270  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4271  Capturing subpattern count = 31  Capturing subpattern count = 31
4272  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4273  Options: dotall  Options: dotall
4274  No first char  No first char
4275  No need char  No need char
4276    
4277  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4278  Capturing subpattern count = 32  Capturing subpattern count = 32
4279  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4280  Options: dotall  Options: dotall
4281  No first char  No first char
4282  No need char  No need char
4283    
4284  /(a)(bc)/ND  /(a)(bc)/INDZ
4285  ------------------------------------------------------------------  ------------------------------------------------------------------
4286    0  21 Bra 0          Bra
4287    3   5 Bra 0          Bra
4288    6     a          a
4289    8   5 Ket          Ket
4290   11   7 Bra 0          Bra
4291   14     bc          bc
4292   18   7 Ket          Ket
4293   21  21 Ket          Ket
4294   24     End          End
4295  ------------------------------------------------------------------  ------------------------------------------------------------------
4296  Capturing subpattern count = 0  Capturing subpattern count = 0
4297  Options:  Options: no_auto_capture
4298  First char = 'a'  First char = 'a'
4299  Need char = 'c'  Need char = 'c'
4300    abc    abc
4301   0: abc   0: abc
4302    
4303  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4304  ------------------------------------------------------------------  ------------------------------------------------------------------
4305    0  21 Bra 0          Bra
4306    3   5 Bra 1          CBra 1
4307    6     a          a
4308    8   5 Ket          Ket
4309   11   7 Bra 0          Bra
4310   14     bc          bc
4311   18   7 Ket          Ket
4312   21  21 Ket          Ket
4313   24     End          End
4314  ------------------------------------------------------------------  ------------------------------------------------------------------
4315  Capturing subpattern count = 1  Capturing subpattern count = 1
4316  Named capturing subpatterns:  Named capturing subpatterns:
4317    one   1    one   1
4318  Options:  Options: no_auto_capture
4319  First char = 'a'  First char = 'a'
4320  Need char = 'c'  Need char = 'c'
4321    abc    abc
4322   0: abc   0: abc
4323   1: a   1: a
4324    
4325  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4326  ------------------------------------------------------------------  ------------------------------------------------------------------
4327    0  21 Bra 0          Bra
4328    3   5 Bra 0          Bra
4329    6     a          a
4330    8   5 Ket          Ket
4331   11   7 Bra 1          CBra 1
4332   14     bc          bc
4333   18   7 Ket          Ket
4334   21  21 Ket          Ket
4335   24     End          End
4336  ------------------------------------------------------------------  ------------------------------------------------------------------
4337  Capturing subpattern count = 1  Capturing subpattern count = 1
4338  Named capturing subpatterns:  Named capturing subpatterns:
4339    named   1    named   1
4340  Options:  Options: no_auto_capture
4341  First char = 'a'  First char = 'a'
4342  Need char = 'c'  Need char = 'c'
4343    
4344  /(a+)*zz/  /(a+)*zz/I
4345  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4346  No options  No options
4347  No first char  No first char
4348  Need char = 'z'  Need char = 'z'
4349    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4350  Minimum match limit = 8  Minimum match() limit = 8
4351    Minimum match() recursion limit = 6
4352   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4353   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4354    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4355  Minimum match limit = 32768  Minimum match() limit = 32768
4356    Minimum match() recursion limit = 42
4357  No match  No match
4358    
4359  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4360  Capturing subpattern count = 1  Capturing subpattern count = 1
4361  No options  No options
4362  First char = 'a'  First char = 'a'
# Line 4506  Callout data = 1 Line 4383  Callout data = 1
4383  Callout data = -1  Callout data = -1
4384  No match  No match
4385    
4386  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4387  Capturing subpattern count = 2  Capturing subpattern count = 2
4388  Named capturing subpatterns:  Named capturing subpatterns:
4389    one   1    one   1
# Line 4523  Need char = 'h' Line 4400  Need char = 'h'
4400   1: cd   1: cd
4401   2: gh   2: gh
4402   1C cd (2)   1C cd (2)
4403   2G gh (2)    G gh (2) two
4404      abcdefgh\Cone\Ctwo      abcdefgh\Cone\Ctwo
4405   0: abcdefgh   0: abcdefgh
4406   1: cd   1: cd
4407   2: gh   2: gh
4408   1C cd (2)    C cd (2) one
4409   2C gh (2)    C gh (2) two
4410      abcdefgh\Cthree      abcdefgh\Cthree
4411  no parentheses with name "three"  no parentheses with name "three"
4412   0: abcdefgh   0: abcdefgh
4413   1: cd   1: cd
4414   2: gh   2: gh
4415    copy substring three failed -7
4416    
4417  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
4418  ------------------------------------------------------------------  ------------------------------------------------------------------
4419    0  15 Bra 0          Bra
4420    3   3 Bra 1          CBra 1
4421    6   3 Ket          Ket
4422    9   3 Bra 2          CBra 2
4423   12   3 Ket          Ket
4424   15  15 Ket          Ket
4425   18     End          End
4426  ------------------------------------------------------------------  ------------------------------------------------------------------
4427  Capturing subpattern count = 2  Capturing subpattern count = 2
4428  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4554  No options Line 4432  No options
4432  No first char  No first char
4433  No need char  No need char
4434    
4435  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
4436  ------------------------------------------------------------------  ------------------------------------------------------------------
4437    0  15 Bra 0          Bra
4438    3   3 Bra 1          CBra 1
4439    6   3 Ket          Ket
4440    9   3 Bra 2          CBra 2
4441   12   3 Ket          Ket
4442   15  15 Ket          Ket
4443   18     End          End
4444  ------------------------------------------------------------------  ------------------------------------------------------------------
4445  Capturing subpattern count = 2  Capturing subpattern count = 2
4446  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4572  No options Line 4450  No options
4450  No first char  No first char
4451  No need char  No need char
4452    
4453  /(?P<Z>zz)(?P<A>aa)/  /(?P<Z>zz)(?P<A>aa)/I
4454  Capturing subpattern count = 2  Capturing subpattern count = 2
4455  Named capturing subpatterns:  Named capturing subpatterns:
4456    A   2    A   2
# Line 4584  Need char = 'a' Line 4462  Need char = 'a'
4462   0: zzaa   0: zzaa
4463   1: zz   1: zz
4464   2: aa   2: aa
4465   1C zz (2)    C zz (2) Z
4466      zzaa\CA      zzaa\CA
4467   0: zzaa   0: zzaa
4468   1: zz   1: zz
4469   2: aa   2: aa
4470   2C aa (2)    C aa (2) A
4471    
4472  /(?P<x>eks)(?P<x>eccs)/  /(?P<x>eks)(?P<x>eccs)/I
4473  Failed: two named groups have the same name at offset 16  Failed: two named subpatterns have the same name at offset 15
4474    
4475  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4476  Failed: two named groups have the same name at offset 31  Failed: two named subpatterns have the same name at offset 30
4477    
4478  "\[((?P<elem>\d+)(,(?P>elem))*)\]"  "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4479  Capturing subpattern count = 3  Capturing subpattern count = 3
4480  Named capturing subpatterns:  Named capturing subpatterns:
4481    elem   2    elem   2
 Partial matching not supported  
4482  No options  No options
4483  First char = '['  First char = '['
4484  Need char = ']'  Need char = ']'
# Line 4612  Need char = ']' Line 4489  Need char = ']'
4489   3: ,4234   3: ,4234
4490      *** Failers      *** Failers
4491  No match  No match
4492      []      []
4493  No match  No match
4494    
4495  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4496  Capturing subpattern count = 3  Capturing subpattern count = 3
4497  Named capturing subpatterns:  Named capturing subpatterns:
4498    elem   2    elem   2
 Partial matching not supported  
4499  No options  No options
4500  First char = '['  First char = '['
4501  Need char = ']'  Need char = ']'
# Line 4628  Need char = ']' Line 4504  Need char = ']'
4504   1: 10,20,30,5,5,4,4,2,43,23,4234   1: 10,20,30,5,5,4,4,2,43,23,4234
4505   2: 10   2: 10
4506   3: ,4234   3: ,4234
4507      []      []
4508   0: []   0: []
4509    
4510  /(a(b(?2)c))?/D  /(a(b(?2)c))?/DZ
4511  ------------------------------------------------------------------  ------------------------------------------------------------------
4512    0  25 Bra 0          Bra
4513    3     Brazero          Brazero
4514    4  18 Bra 1          CBra 1
4515    7     a          a
4516    9  10 Bra 2          CBra 2
4517   12     b          b
4518   14   9 Recurse          Once
4519   17     c          Recurse
4520   19  10 Ket          Ket
4521   22  18 Ket          c
4522   25  25 Ket          Ket
4523   28     End          Ket
4524            Ket
4525            End
4526  ------------------------------------------------------------------  ------------------------------------------------------------------
4527  Capturing subpattern count = 2  Capturing subpattern count = 2
4528  No options  No options
4529  No first char  No first char
4530  No need char  No need char