/[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 65 by nigel, Sat Feb 24 21:40:08 2007 UTC revision 1381 by zherczeg, Wed Oct 16 06:23:00 2013 UTC
# Line 1  Line 1 
1  PCRE version 4.1 12-Mar-2003  /-- 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  /(a)b|/      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 a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
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
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
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
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
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 76  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 94  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 107  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
153  No options  No options
154  First char at start or follows \n  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
159  No options  No options
160  First char at start or follows \n  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
162    
163  /cat|dog|elephant/  /cat|dog|elephant/I
164  Capturing subpattern count = 0  Capturing subpattern count = 0
165  No options  No options
166  No first char  No first char
# Line 131  No need char Line 170  No need char
170      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
171   0: elephant   0: elephant
172    
173  /cat|dog|elephant/S  /cat|dog|elephant/IS
174  Capturing subpattern count = 0  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178  Study size = 40  Subject length lower bound = 3
179  Starting character set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
182      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
183   0: elephant   0: elephant
184    
185  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
186  Capturing subpattern count = 0  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190  Study size = 40  Subject length lower bound = 3
191  Starting character set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
194      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
195   0: elephant   0: elephant
196    
197  /a|[bcd]/S  /a|[bcd]/IS
198  Capturing subpattern count = 0  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202  Study size = 40  Subject length lower bound = 1
203  Starting character set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
206  Capturing subpattern count = 1  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210  Study size = 40  Subject length lower bound = 1
211  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
212    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
214    ? @ 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 [ \ ] ^ _ ` a b c d    ? @ 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 [ \ ] ^ _ ` a b c d
# Line 184  Starting character set: \x00 \x01 \x02 \ Line 223  Starting character set: \x00 \x01 \x02 \
223    \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
224    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
225    
226  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
227  Capturing subpattern count = 1  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231  Study size = 40  Subject length lower bound = 1
232  Starting character set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
235  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 198  Failed: reference to non-existent subpat Line 237  Failed: reference to non-existent subpat
237  /{4,5}abc/  /{4,5}abc/
238  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
239    
240  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
241  Capturing subpattern count = 3  Capturing subpattern count = 3
242  Max back reference = 2  Max back reference = 2
243  No options  No options
# Line 223  Matched, but too many substrings Line 262  Matched, but too many substrings
262   0: abcb   0: abcb
263   1: a   1: a
264   2: b   2: b
265      \O12abcb      \O12abcb
266   0: abcb   0: abcb
267   1: a   1: a
268   2: b   2: b
269   3: c   3: c
270    
271  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
272  Capturing subpattern count = 3  Capturing subpattern count = 3
273  Max back reference = 2  Max back reference = 2
274  No options  No options
# Line 271  Matched, but too many substrings Line 310  Matched, but too many substrings
310   2: a   2: a
311   3: b   3: b
312    
313  /abc$/E  /abc$/IE
314  Capturing subpattern count = 0  Capturing subpattern count = 0
315  Options: dollar_endonly  Options: dollar_endonly
316  First char = 'a'  First char = 'a'
# Line 288  No match Line 327  No match
327  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
328  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
329    
330  /the quick brown fox/  /the quick brown fox/I
331  Capturing subpattern count = 0  Capturing subpattern count = 0
332  No options  No options
333  First char = 't'  First char = 't'
# Line 298  Need char = 'x' Line 337  Need char = 'x'
337      this is a line with the quick brown fox      this is a line with the quick brown fox
338   0: the quick brown fox   0: the quick brown fox
339    
340  /the quick brown fox/A  /the quick brown fox/IA
341  Capturing subpattern count = 0  Capturing subpattern count = 0
342  Options: anchored  Options: anchored
343  No first char  No first char
# Line 311  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
357  No options  No options
358  No first char  No first char
# Line 323  No need char Line 362  No need char
362      abcdef\B      abcdef\B
363   0: def   0: def
364    
365  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
367  No options  No options
368  First char at start or follows \n  First char at start or follows newline
369  No need char  No need char
370      defabc      defabc
371   0: defabc   0: defabc
# Line 338  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
383  /a[]b/  /a[]b/
384  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
385    
386  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
387  Capturing subpattern count = 0  Capturing subpattern count = 0
388  No options  No options
389  No first char  No first char
390  No need char  No need char
391      co-processors, and for      co-processors, and for
392   0: -pr   0: -pr
393    
394  /<.*>/  /<.*>/I
395  Capturing subpattern count = 0  Capturing subpattern count = 0
396  No options  No options
397  First char = '<'  First char = '<'
# Line 415  Need char = '>' Line 399  Need char = '>'
399      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
400   0: <def>ghi<klm>   0: <def>ghi<klm>
401    
402  /<.*?>/  /<.*?>/I
403  Capturing subpattern count = 0  Capturing subpattern count = 0
404  No options  No options
405  First char = '<'  First char = '<'
# Line 423  Need char = '>' Line 407  Need char = '>'
407      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
408   0: <def>   0: <def>
409    
410  /<.*>/U  /<.*>/IU
411  Capturing subpattern count = 0  Capturing subpattern count = 0
412  Options: ungreedy  Options: ungreedy
413  First char = '<'  First char = '<'
414  Need char = '>'  Need char = '>'
415      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
416   0: <def>   0: <def>
417    
418  /(?U)<.*>/  /(?U)<.*>/I
419  Capturing subpattern count = 0  Capturing subpattern count = 0
420  Options: ungreedy  Options: ungreedy
421  First char = '<'  First char = '<'
# Line 439  Need char = '>' Line 423  Need char = '>'
423      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
424   0: <def>   0: <def>
425    
426  /<.*?>/U  /<.*?>/IU
427  Capturing subpattern count = 0  Capturing subpattern count = 0
428  Options: ungreedy  Options: ungreedy
429  First char = '<'  First char = '<'
430  Need char = '>'  Need char = '>'
431      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
432   0: <def>ghi<klm>   0: <def>ghi<klm>
433    
434  /={3,}/U  /={3,}/IU
435  Capturing subpattern count = 0  Capturing subpattern count = 0
436  Options: ungreedy  Options: ungreedy
437  First char = '='  First char = '='
438  Need char = '='  Need char = '='
439      abc========def      abc========def
440   0: ===   0: ===
441    
442  /(?U)={3,}?/  /(?U)={3,}?/I
443  Capturing subpattern count = 0  Capturing subpattern count = 0
444  Options: ungreedy  Options: ungreedy
445  First char = '='  First char = '='
446  Need char = '='  Need char = '='
447      abc========def      abc========def
448   0: ========   0: ========
449    
450  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
456      foo      foo
457   0: foo   0: foo
458      catfoo      catfoo
459   0: foo   0: foo
460      *** Failers      *** Failers
461  No match  No match
462      the barfoo      the barfoo
463  No match  No match
464      and cattlefoo      and cattlefoo
465  No match  No match
466    
467  /(?<=a+)b/  /(?<=a+)b/
# Line 488  Failed: lookbehind assertion is not fixe Line 473  Failed: lookbehind assertion is not fixe
473  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
474  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
475    
476  /(?i)abc/  /(?i)abc/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
478  Options: caseless  Options: caseless
479  First char = 'a' (caseless)  First char = 'a' (caseless)
480  Need char = 'c' (caseless)  Need char = 'c' (caseless)
481    
482  /(a|(?m)a)/  /(a|(?m)a)/I
483  Capturing subpattern count = 1  Capturing subpattern count = 1
484  No options  No options
485  First char = 'a'  First char = 'a'
486  No need char  No need char
487    
488  /(?i)^1234/  /(?i)^1234/I
489  Capturing subpattern count = 0  Capturing subpattern count = 0
490  Options: anchored caseless  Options: anchored caseless
491  No first char  No first char
492  No need char  No need char
493    
494  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
495  Capturing subpattern count = 1  Capturing subpattern count = 1
496  Options: anchored  Options: anchored
 Case state changes  
497  No first char  No first char
498  No need char  No need char
499    
500  /(?s).*/  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502    May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
506    
507  /[abcd]/S  /[abcd]/IS
508  Capturing subpattern count = 0  Capturing subpattern count = 0
509  No options  No options
510  No first char  No first char
511  No need char  No need char
512  Study size = 40  Subject length lower bound = 1
513  Starting character set: a b c d  Starting byte set: a b c d
514    
515  /(?i)[abcd]/S  /(?i)[abcd]/IS
516  Capturing subpattern count = 0  Capturing subpattern count = 0
517  Options: caseless  Options: caseless
518  No first char  No first char
519  No need char  No need char
520  Study size = 40  Subject length lower bound = 1
521  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
522    
523  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
524  Capturing subpattern count = 1  Capturing subpattern count = 1
525  Options: multiline  Options: multiline
526  No first char  No first char
527  No need char  No need char
528  Study size = 40  Subject length lower bound = 1
529  Starting character set: b c x y  Starting byte set: b c x y
530    
531  /(^a|^b)/m  /(^a|^b)/Im
532  Capturing subpattern count = 1  Capturing subpattern count = 1
533  Options: multiline  Options: multiline
534  First char at start or follows \n  First char at start or follows newline
535  No need char  No need char
536    
537  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
538  Capturing subpattern count = 1  Capturing subpattern count = 1
539  Options: caseless multiline  Options: caseless multiline
540  First char at start or follows \n  First char at start or follows newline
541  No need char  No need char
542    
543  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 562  Failed: conditional group contains more Line 547  Failed: conditional group contains more
547  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
548    
549  /(?(1a)/  /(?(1a)/
550  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
551    
552    /(?(1a))/
553    Failed: reference to non-existent subpattern at offset 6
554    
555  /(?(?i))/  /(?(?i))/
556  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
557    
558  /(?(abc))/  /(?(abc))/
559  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
560    
561  /(?(?<ab))/  /(?(?<ab))/
562  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
563    
564  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
565  Capturing subpattern count = 1  Capturing subpattern count = 1
566  Max back reference = 1  Max back reference = 1
567  No options  No options
568  First char = 'b'  First char = 'b'
569  Need char = 'h'  Need char = 'h'
570    
571  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
572  Capturing subpattern count = 1  Capturing subpattern count = 1
573  Max back reference = 1  Max back reference = 1
574  No options  No options
 Case state changes  
575  First char = 'b' (caseless)  First char = 'b' (caseless)
576  Need char = 'h' (caseless)  Need char = 'h' (caseless)
577    
578  /((?i)b)/DS  /((?i)b)/IDZS
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580    0  16 Bra 0          Bra
581    3   8 Bra 1          CBra 1
582    6  01 Opt       /i b
583    8   1 b          Ket
584   11   8 Ket          Ket
585   14  00 Opt          End
  16  16 Ket  
  19     End  
586  ------------------------------------------------------------------  ------------------------------------------------------------------
587  Capturing subpattern count = 1  Capturing subpattern count = 1
588  No options  No options
 Case state changes  
589  First char = 'b' (caseless)  First char = 'b' (caseless)
590  No need char  No need char
591  Study returned NULL  Subject length lower bound = 1
592    No set of starting bytes
593    
594  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
595  Capturing subpattern count = 1  Capturing subpattern count = 1
596  No options  No options
 Case state changes  
597  No first char  No first char
598  No need char  No need char
599  Study size = 40  Subject length lower bound = 1
600  Starting character set: C a b c d  Starting byte set: C a b c d
601    
602  /a$/  /a$/I
603  Capturing subpattern count = 0  Capturing subpattern count = 0
604  No options  No options
605  First char = 'a'  First char = 'a'
# Line 624  No need char Line 608  No need char
608   0: a   0: a
609      a\n      a\n
610   0: a   0: a
611      *** Failers      *** Failers
612  No match  No match
613      \Za      \Za
614  No match  No match
615      \Za\n      \Za\n
616  No match  No match
617    
618  /a$/m  /a$/Im
619  Capturing subpattern count = 0  Capturing subpattern count = 0
620  Options: multiline  Options: multiline
621  First char = 'a'  First char = 'a'
# Line 640  No need char Line 624  No need char
624   0: a   0: a
625      a\n      a\n
626   0: a   0: a
627      \Za\n      \Za\n
628   0: a   0: a
629      *** Failers      *** Failers
630  No match  No match
631      \Za      \Za
632  No match  No match
633    
634  /\Aabc/m  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
640    
641  /^abc/m  /^abc/Im
642  Capturing subpattern count = 0  Capturing subpattern count = 0
643  Options: multiline  Options: multiline
644  First char at start or follows \n  First char at start or follows newline
645  Need char = 'c'  Need char = 'c'
646    
647  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
648  Capturing subpattern count = 5  Capturing subpattern count = 5
649  Options: anchored  Options: anchored
650  No first char  No first char
# Line 672  No need char Line 657  No need char
657   4: bbbbccccc   4: bbbbccccc
658   5: def   5: def
659    
660  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
666  Study size = 40  Subject length lower bound = 1
667  Starting character set: a b  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
675  Study size = 40  Subject length lower bound = 5
676  Starting character set: a o  Starting byte set: a o
677    
678  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
679  Capturing subpattern count = 0  Capturing subpattern count = 0
680  No options  No options
681  No first char  No first char
682  No need char  No need char
683  Study size = 40  Subject length lower bound = 1
684  Starting character set: a b  Starting byte set: a b
685    
686    /(?<=foo\n)^bar/Im
687    Capturing subpattern count = 0
688    Max lookbehind = 4
689    Contains explicit CR or LF match
690    Options: multiline
691    No first char
692    Need char = 'r'
693        foo\nbarbar
694     0: bar
695        ***Failers
696    No match
697        rhubarb
698    No match
699        barbell
700    No match
701        abc\nbarton
702    No match
703    
704  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707    Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows \n  First char at start or follows newline
710  Need char = 'r'  Need char = 'r'
711        foo\nbarbar
712     0: bar
713        ***Failers
714    No match
715        rhubarb
716    No match
717        barbell
718    No match
719        abc\nbarton
720    No match
721    
722  /(?>^abc)/m  /(?>^abc)/Im
723  Capturing subpattern count = 0  Capturing subpattern count = 0
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'c'  Need char = 'c'
727      abc      abc
728   0: abc   0: abc
# Line 713  Need char = 'c' Line 730  Need char = 'c'
730   0: abc   0: abc
731      *** Failers      *** Failers
732  No match  No match
733      defabc      defabc
734  No match  No match
735    
736  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 726  Failed: lookbehind assertion is not fixe Line 743  Failed: lookbehind assertion is not fixe
743  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
744    
745  /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'  
746    
747  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 744  Need char = 't' Line 758  Need char = 't'
758  No match  No match
759      cart      cart
760  No match  No match
761      horse-and-cart      horse-and-cart
762  No match  No match
763    
764  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
 Case state changes  
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774    Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows \n  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 767  No need char Line 784  No need char
784   1: <unset>   1: <unset>
785   2: xyz   2: xyz
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
 Case state changes  
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
793      abxyZZ      abxyZZ
# Line 783  Need char = 'Z' Line 800  Need char = 'Z'
800   0: ZZ   0: ZZ
801      bZZ      bZZ
802   0: ZZ   0: ZZ
803      BZZ      BZZ
804   0: ZZ   0: ZZ
805      *** Failers      *** Failers
806  No match  No match
807      ZZ      ZZ
808  No match  No match
809      abXYZZ      abXYZZ
810  No match  No match
811      zzz      zzz
812  No match  No match
813      bzz      bzz
814  No match  No match
815    
816  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
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
 No match  
   
 /This one is here because Perl 5.005_02 doesn't fail it/  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
829  No match  No match
830    
831  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/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 = 'g'  Need char = 'g'
836    
837  /^(a\1?){4}$/  /^(a\1?){4}$/I
838  Capturing subpattern count = 1  Capturing subpattern count = 1
839  Max back reference = 1  Max back reference = 1
840  Options: anchored  Options: anchored
841  No first char  No first char
842  No need char  No need char
843        aaaa
844    No match
845      aaaaaa      aaaaaa
846   0: aaaaaa  No match
  1: aa  
847    
848  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
849    /release 8.01. The problem is in backtracking into a subpattern that contains/
850    No match
851    /a recursive reference to itself. PCRE has now made these into atomic patterns./
852    No match
853    
854    /^(xa|=?\1a){2}$/
855        xa=xaa
856     0: xa=xaa
857     1: =xaa
858        ** Failers
859    No match
860        xa=xaaa
861    No match
862    
863    /^(xa|=?\1a)+$/
864        xa=xaa
865     0: xa=xaa
866     1: =xaa
867        ** Failers
868    No match
869        xa=xaaa
870    No match
871    
872    /These are syntax tests from Perl 5.005/I
873  Capturing subpattern count = 0  Capturing subpattern count = 0
874  No options  No options
875  First char = 'T'  First char = 'T'
# Line 884  Failed: reference to non-existent subpat Line 911  Failed: reference to non-existent subpat
911  /(a)|\2/  /(a)|\2/
912  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
913    
914  /a[b-a]/i  /a[b-a]/Ii
915  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
916    
917  /a[]b/i  /a[]b/Ii
918  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
919    
920  /a[/i  /a[/Ii
921  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
922    
923  /*a/i  /*a/Ii
924  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
925    
926  /(*)b/i  /(*)b/Ii
927  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
928    
929  /abc)/i  /abc)/Ii
930  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
931    
932  /(abc/i  /(abc/Ii
933  Failed: missing ) at offset 4  Failed: missing ) at offset 4
934    
935  /a**/i  /a**/Ii
936  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
937    
938  /)(/i  /)(/Ii
939  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
940    
941  /:(?:/  /:(?:/
# Line 918  Failed: missing ) at offset 4 Line 945  Failed: missing ) at offset 4
945  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< 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  /a(?{}})b/  /a(?{}})b/
954  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
955    
956  /a(?{"{"})b/  /a(?{"{"})b/
957  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
958    
959  /a(?{"{"}})b/  /a(?{"{"}})b/
960  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
961    
962  /(?(1?)a|b)/  /(?(1?)a|b)/
963  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  
964    
965  /[a[:xyz:/  /[a[:xyz:/
966  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 950  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
980  /(a)bc(d)/  /(a)bc(d)/I
981  Capturing subpattern count = 2  Capturing subpattern count = 2
982  No options  No options
983  First char = 'a'  First char = 'a'
# Line 975  Need char = 'd' Line 996  Need char = 'd'
996   1: a   1: a
997   2: d   2: d
998  copy substring 5 failed -7  copy substring 5 failed -7
999    
1000  /(.{20})/  /(.{20})/I
1001  Capturing subpattern count = 1  Capturing subpattern count = 1
1002  No options  No options
1003  No first char  No first char
# Line 987  No need char Line 1008  No need char
1008      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1009   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1010   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1011  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1012      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1013   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1014   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1015   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1016    
1017  /(.{15})/  /(.{15})/I
1018  Capturing subpattern count = 1  Capturing subpattern count = 1
1019  No options  No options
1020  No first char  No first char
# Line 1007  No need char Line 1028  No need char
1028   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1029   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1030    
1031  /(.{16})/  /(.{16})/I
1032  Capturing subpattern count = 1  Capturing subpattern count = 1
1033  No options  No options
1034  No first char  No first char
# Line 1018  No need char Line 1039  No need char
1039      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1040   0: abcdefghijklmnop   0: abcdefghijklmnop
1041   1: abcdefghijklmnop   1: abcdefghijklmnop
1042  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1043   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1044   0L abcdefghijklmnop   0L abcdefghijklmnop
1045   1L abcdefghijklmnop   1L abcdefghijklmnop
1046    
1047  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1048  Capturing subpattern count = 3  Capturing subpattern count = 3
1049  Options: anchored  Options: anchored
1050  No first char  No first char
1051  No need char  No need char
1052      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1053   0: adef   0: adef
1054   1: a   1: a
1055   2: <unset>   2: <unset>
# Line 1041  get substring 4 failed -7 Line 1062  get substring 4 failed -7
1062   1L a   1L a
1063   2L   2L
1064   3L f   3L f
1065      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1066   0: bcdef   0: bcdef
1067   1: bc   1: bc
1068   2: bc   2: bc
# Line 1054  get substring 4 failed -7 Line 1075  get substring 4 failed -7
1075   1L bc   1L bc
1076   2L bc   2L bc
1077   3L f   3L f
1078      adefghijk\C0      adefghijk\C0
1079   0: adef   0: adef
1080   1: a   1: a
1081   2: <unset>   2: <unset>
1082   3: f   3: f
1083   0C adef (4)   0C adef (4)
1084    
1085  /^abc\00def/  /^abc\00def/I
1086  Capturing subpattern count = 0  Capturing subpattern count = 0
1087  Options: anchored  Options: anchored
1088  No first char  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /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]+
1096  )((?:[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]+
1097  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1098  Capturing subpattern count = 8  Capturing subpattern count = 8
1099    Contains explicit CR or LF match
1100  No options  No options
1101  First char = 'w'  First char = 'w'
1102  Need char = 'd'  Need char = 'd'
1103    
1104  /.*X/D  /.*X/IDZ
1105  ------------------------------------------------------------------  ------------------------------------------------------------------
1106    0   8 Bra 0          Bra
1107    3     Any*          Any*
1108    5   1 X          X
1109    8   8 Ket          Ket
1110   11     End          End
1111  ------------------------------------------------------------------  ------------------------------------------------------------------
1112  Capturing subpattern count = 0  Capturing subpattern count = 0
1113  No options  No options
1114  First char at start or follows \n  First char at start or follows newline
1115  Need char = 'X'  Need char = 'X'
1116    
1117  /.*X/Ds  /.*X/IDZs
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119    0   8 Bra 0          Bra
1120    3     Any*          AllAny*
1121    5   1 X          X
1122    8   8 Ket          Ket
1123   11     End          End
1124  ------------------------------------------------------------------  ------------------------------------------------------------------
1125  Capturing subpattern count = 0  Capturing subpattern count = 0
1126  Options: anchored dotall  Options: anchored dotall
1127  No first char  No first char
1128  Need char = 'X'  Need char = 'X'
1129    
1130  /(.*X|^B)/D  /(.*X|^B)/IDZ
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132    0  21 Bra 0          Bra
1133    3   8 Bra 1          CBra 1
1134    6     Any*          Any*
1135    8   1 X          X
1136   11   7 Alt          Alt
1137   14     ^          ^
1138   15   1 B          B
1139   18  15 Ket          Ket
1140   21  21 Ket          Ket
1141   24     End          End
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143  Capturing subpattern count = 1  Capturing subpattern count = 1
1144  No options  No options
1145  First char at start or follows \n  First char at start or follows newline
1146  No need char  No need char
1147    
1148  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150    0  21 Bra 0          Bra
1151    3   8 Bra 1          CBra 1
1152    6     Any*          AllAny*
1153    8   1 X          X
1154   11   7 Alt          Alt
1155   14     ^          ^
1156   15   1 B          B
1157   18  15 Ket          Ket
1158   21  21 Ket          Ket
1159   24     End          End
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161  Capturing subpattern count = 1  Capturing subpattern count = 1
1162  Options: anchored dotall  Options: anchored dotall
1163  No first char  No first char
1164  No need char  No need char
1165    
1166  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168    0  21 Bra 0          Bra
1169    3   8 Bra 1          CBra 1
1170    6     Any*          AllAny*
1171    8   1 X          X
1172   11   7 Alt          Alt
1173   14     ^          ^
1174   15   1 B          B
1175   18  15 Ket          Ket
1176   21  21 Ket          Ket
1177   24     End          End
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179  Capturing subpattern count = 1  Capturing subpattern count = 1
1180  Options: anchored dotall  Options: anchored dotall
1181  No first char  No first char
1182  No need char  No need char
1183    
1184  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186    0  27 Bra 0          Bra
1187    3  10 Bra 0          Bra
1188    6  04 Opt          AllAny*
1189    8     Any*          X
1190   10   1 X          Alt
1191   13   9 Alt          ^
1192   16  04 Opt          B
1193   18     ^          Ket
1194   19   1 B          Ket
1195   22  19 Ket          End
  25  00 Opt  
  27  27 Ket  
  30     End  
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197  Capturing subpattern count = 0  Capturing subpattern count = 0
1198  No options  Options: anchored
1199  First char at start or follows \n  No first char
1200  No need char  No need char
1201    
1202  /\Biss\B/+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1190  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
1212  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1220  Need char = 's'
1220   0: iss   0: iss
1221   0+ ippi   0+ ippi
1222    
1223  /\Biss\B/G+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1215  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    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1230  No match Line 1246  No match
1246      Mississippi\A      Mississippi\A
1247  No match  No match
1248    
1249  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1241  Need char = 's' Line 1258  Need char = 's'
1258   0: iss   0: iss
1259   0+ ippi   0+ ippi
1260    
1261  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1250  Need char = 's' Line 1268  Need char = 's'
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
1270    
1271  /^iss/g+  /^iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  Options: anchored  Options: anchored
1274  No first char  No first char
# Line 1258  No need char Line 1276  No need char
1276      ississippi      ississippi
1277   0: iss   0: iss
1278   0+ issippi   0+ issippi
1279    
1280  /.*iss/g+  /.*iss/Ig+
1281  Capturing subpattern count = 0  Capturing subpattern count = 0
1282  No options  No options
1283  First char at start or follows \n  First char at start or follows newline
1284  Need char = 's'  Need char = 's'
1285      abciss\nxyzisspqr      abciss\nxyzisspqr
1286   0: abciss   0: abciss
1287   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1288   0: xyziss   0: xyziss
1289   0+ pqr   0+ pqr
1290    
1291  /.i./+g  /.i./I+g
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  No options  No options
1294  No first char  No first char
# Line 1296  Need char = 'i' Line 1314  Need char = 'i'
1314   0+ river   0+ river
1315   0: riv   0: riv
1316   0+ er   0+ er
1317      Missouri river\A      Missouri river\A
1318   0: Mis   0: Mis
1319   0+ souri river   0+ souri river
1320    
1321  /^.is/+g  /^.is/I+g
1322  Capturing subpattern count = 0  Capturing subpattern count = 0
1323  Options: anchored  Options: anchored
1324  No first char  No first char
# Line 1309  No need char Line 1327  No need char
1327   0: Mis   0: Mis
1328   0+ sissippi   0+ sissippi
1329    
1330  /^ab\n/g+  /^ab\n/Ig+
1331  Capturing subpattern count = 0  Capturing subpattern count = 0
1332    Contains explicit CR or LF match
1333  Options: anchored  Options: anchored
1334  No first char  No first char
1335  No need char  No need char
# Line 1318  No need char Line 1337  No need char
1337   0: ab\x0a   0: ab\x0a
1338   0+ ab\x0acd   0+ ab\x0acd
1339    
1340  /^ab\n/mg+  /^ab\n/Img+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342    Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows \n  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
1349   0: ab\x0a   0: ab\x0a
1350   0+ cd   0+ cd
1351    
1352  /abc/  /abc/I
1353  Capturing subpattern count = 0  Capturing subpattern count = 0
1354  No options  No options
1355  First char = 'a'  First char = 'a'
1356  Need char = 'c'  Need char = 'c'
1357    
1358  /abc|bac/  /abc|bac/I
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360  No options  No options
1361  No first char  No first char
1362  Need char = 'c'  Need char = 'c'
1363    
1364  /(abc|bac)/  /(abc|bac)/I
1365  Capturing subpattern count = 1  Capturing subpattern count = 1
1366  No options  No options
1367  No first char  No first char
1368  Need char = 'c'  Need char = 'c'
1369    
1370  /(abc|(c|dc))/  /(abc|(c|dc))/I
1371  Capturing subpattern count = 2  Capturing subpattern count = 2
1372  No options  No options
1373  No first char  No first char
1374  Need char = 'c'  Need char = 'c'
1375    
1376  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1377  Capturing subpattern count = 2  Capturing subpattern count = 2
1378  No options  No options
1379  No first char  No first char
1380  Need char = 'c'  Need char = 'c'
1381    
1382  /a*/  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384    May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
1388    
1389  /a+/  /a+/I
1390  Capturing subpattern count = 0  Capturing subpattern count = 0
1391  No options  No options
1392  First char = 'a'  First char = 'a'
1393  No need char  No need char
1394    
1395  /(baa|a+)/  /(baa|a+)/I
1396  Capturing subpattern count = 1  Capturing subpattern count = 1
1397  No options  No options
1398  No first char  No first char
1399  Need char = 'a'  Need char = 'a'
1400    
1401  /a{0,3}/  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403    May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
1407    
1408  /baa{3,}/  /baa{3,}/I
1409  Capturing subpattern count = 0  Capturing subpattern count = 0
1410  No options  No options
1411  First char = 'b'  First char = 'b'
1412  Need char = 'a'  Need char = 'a'
1413    
1414  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
1416  No options  No options
1417  First char = '"'  First char = '"'
1418  Need char = '"'  Need char = '"'
1419    
1420  /(abc|ab[cd])/  /(abc|ab[cd])/I
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422  No options  No options
1423  First char = 'a'  First char = 'a'
1424  No need char  No need char
1425    
1426  /(a|.)/  /(a|.)/I
1427  Capturing subpattern count = 1  Capturing subpattern count = 1
1428  No options  No options
1429  No first char  No first char
1430  No need char  No need char
1431    
1432  /a|ba|\w/  /a|ba|\w/I
1433  Capturing subpattern count = 0  Capturing subpattern count = 0
1434  No options  No options
1435  No first char  No first char
1436  No need char  No need char
1437    
1438  /abc(?=pqr)/  /abc(?=pqr)/I
1439  Capturing subpattern count = 0  Capturing subpattern count = 0
1440  No options  No options
1441  First char = 'a'  First char = 'a'
1442  Need char = 'r'  Need char = 'r'
1443    
1444  /...(?<=abc)/  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /abc(?!pqr)/  /abc(?!pqr)/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 = 'c'  Need char = 'c'
1456    
1457  /ab./  /ab./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  /ab[xyz]/  /ab[xyz]/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'b'  Need char = 'b'
1468    
1469  /abc*/  /abc*/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
1471  No options  No options
1472  First char = 'a'  First char = 'a'
1473  Need char = 'b'  Need char = 'b'
1474    
1475  /ab.c*/  /ab.c*/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'b'  Need char = 'b'
1480    
1481  /a.c*/  /a.c*/I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  No need char  No need char
1486    
1487  /.c*/  /.c*/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
1489  No options  No options
1490  No first char  No first char
1491  No need char  No need char
1492    
1493  /ac*/  /ac*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
1495  No options  No options
1496  First char = 'a'  First char = 'a'
1497  No need char  No need char
1498    
1499  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1500  Capturing subpattern count = 1  Capturing subpattern count = 1
1501  No options  No options
1502  No first char  No first char
1503  No need char  No need char
1504    
1505  /a.c*|aba/  /a.c*|aba/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
1507  No options  No options
1508  First char = 'a'  First char = 'a'
1509  No need char  No need char
1510    
1511  /.+a/  /.+a/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
1513  No options  No options
1514  No first char  No first char
1515  Need char = 'a'  Need char = 'a'
1516    
1517  /(?=abcda)a.*/  /(?=abcda)a.*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  Need char = 'a'  Need char = 'a'
1522    
1523  /(?=a)a.*/  /(?=a)a.*/I
1524  Capturing subpattern count = 0  Capturing subpattern count = 0
1525  No options  No options
1526  First char = 'a'  First char = 'a'
1527  No need char  No need char
1528    
1529  /a(b)*/  /a(b)*/I
1530  Capturing subpattern count = 1  Capturing subpattern count = 1
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  No need char  No need char
1534    
1535  /a\d*/  /a\d*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  No need char  No need char
1540    
1541  /ab\d*/  /ab\d*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  Need char = 'b'  Need char = 'b'
1546    
1547  /a(\d)*/  /a(\d)*/I
1548  Capturing subpattern count = 1  Capturing subpattern count = 1
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  No need char  No need char
1552    
1553  /abcde{0,0}/  /abcde{0,0}/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  Need char = 'd'  Need char = 'd'
1558    
1559  /ab\d+/  /ab\d+/I
1560  Capturing subpattern count = 0  Capturing subpattern count = 0
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  Need char = 'b'  Need char = 'b'
1564    
1565  /a(?(1)b)/  /a(?(1)b)(.)/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 1
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
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  Need char = 'g'  Need char = 'g'
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  No need char  No need char
1582    
1583  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/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 = 'g'  Need char = 'g'
1588    
1589  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 1
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'b'  Need char = 'b'
1594    
1595  /ab\d{0}e/  /ab\d{0}e/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  Need char = 'e'  Need char = 'e'
1600    
1601  /a?b?/  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1590  No need char Line 1614  No need char
1614   0:   0:
1615      *** Failers      *** Failers
1616   0:   0:
1617      \N      \N
1618  No match  No match
1619    
1620  /|-/  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1606  No need char Line 1631  No need char
1631   0: -   0: -
1632      *** Failers      *** Failers
1633   0:   0:
1634      \Nabc      \Nabc
1635  No match  No match
1636    
1637  /a*(b+)(z)(z)/P  /^.?abcd/IS
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
 /^.?abcd/S  
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
1640  No first char  No first char
1641  Need char = 'd'  Need char = 'd'
1642  Study returned NULL  Subject length lower bound = 4
1643    No set of starting bytes
1644    
1645  /\(             # ( at start  /\(             # ( at start
1646    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1650  Study returned NULL Line 1649  Study returned NULL
1649    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1650    )*            # Zero or more contents    )*            # Zero or more contents
1651    \)            # Closing )    \)            # Closing )
1652    /x    /Ix
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
1654  Options: extended  Options: extended
1655  First char = '('  First char = '('
# Line 1661  Need char = ')' Line 1660  Need char = ')'
1660   0: (abcd)   0: (abcd)
1661      xyz(abcd)      xyz(abcd)
1662   0: (abcd)   0: (abcd)
1663      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1664   0: (ab(xy)cd)   0: (ab(xy)cd)
1665      (ab(xycd)pqr      (ab(xycd)pqr
1666   0: (xycd)   0: (xycd)
1667      () abc ()      () abc ()
1668   0: ()   0: ()
1669      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1670   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1671      *** Failers      *** Failers
1672  No match  No match
1673      abcd      abcd
1674  No match  No match
1675      abcd)      abcd)
1676  No match  No match
1677      (abcd      (abcd
1678  No match  No match
1679    
1680  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1681  Capturing subpattern count = 1  Capturing subpattern count = 1
1682  Options: extended  Options: extended
1683  First char = '('  First char = '('
1684  Need char = ')'  Need char = ')'
1685      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1686   0: (ab(xy)cd)   0: (ab(xy)cd)
1687   1: cd   1: cd
1688      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1692  Need char = ')' Line 1691  Need char = ')'
1691   0: (x(y)z)   0: (x(y)z)
1692   1: z   1: z
1693    
1694  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
1696  Options: extended  Options: extended
1697  First char = '('  First char = '('
# Line 1701  Need char = ')' Line 1700  Need char = ')'
1700   0: (abcd)   0: (abcd)
1701      (ab(xy)cd)      (ab(xy)cd)
1702   0: (xy)   0: (xy)
1703      (a(b(c)d)e)      (a(b(c)d)e)
1704   0: (c)   0: (c)
1705      ((ab))      ((ab))
1706   0: ((ab))   0: ((ab))
1707      *** Failers      *** Failers
1708  No match  No match
1709      ()      ()
1710  No match  No match
1711    
1712  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1713  Capturing subpattern count = 0  Capturing subpattern count = 0
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
# Line 1720  Need char = ')' Line 1719  Need char = ')'
1719      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1720   0: (fsh)   0: (fsh)
1721    
1722  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1723  Capturing subpattern count = 1  Capturing subpattern count = 1
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
# Line 1729  Need char = ')' Line 1728  Need char = ')'
1728   0: (ab(xy)cd)   0: (ab(xy)cd)
1729   1: cd   1: cd
1730    
1731  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1732  Capturing subpattern count = 2  Capturing subpattern count = 2
1733  Options: extended  Options: extended
1734  First char = '('  First char = '('
# Line 1739  Need char = ')' Line 1738  Need char = ')'
1738   1: ab(xy)cd   1: ab(xy)cd
1739   2: cd   2: cd
1740    
1741  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1742  Capturing subpattern count = 3  Capturing subpattern count = 3
1743  Options: extended  Options: extended
1744  First char = '('  First char = '('
# Line 1755  Need char = ')' Line 1754  Need char = ')'
1754   2: ab(xy)cd   2: ab(xy)cd
1755   3: cd   3: cd
1756    
1757  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1758  Capturing subpattern count = 3  Capturing subpattern count = 3
1759  Options: extended  Options: extended
1760  First char = '('  First char = '('
# Line 1771  Need char = ')' Line 1770  Need char = ')'
1770   2: 123   2: 123
1771   3: cd   3: cd
1772    
1773  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1774  Capturing subpattern count = 11  Capturing subpattern count = 11
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
# Line 1790  Need char = ')' Line 1789  Need char = ')'
1789  10: ab(xy)cd  10: ab(xy)cd
1790  11: cd  11: cd
1791    
1792  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1793  Capturing subpattern count = 3  Capturing subpattern count = 3
1794  Options: extended  Options: extended
1795  First char = '('  First char = '('
# Line 1799  Need char = ')' Line 1798  Need char = ')'
1798   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1799   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1800   2: 123   2: 123
  3: <unset>  
1801    
1802  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1803  Capturing subpattern count = 3  Capturing subpattern count = 3
1804  Options: extended  Options: extended
1805  First char = '('  First char = '('
# Line 1817  Need char = ')' Line 1815  Need char = ')'
1815   2: ij   2: ij
1816   3: (cd(ef)gh)   3: (cd(ef)gh)
1817    
1818  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1819    ------------------------------------------------------------------
1820            Bra
1821            ^
1822            [0-9A-Za-z]
1823            Ket
1824            End
1825    ------------------------------------------------------------------
1826    Capturing subpattern count = 0
1827    Options: anchored
1828    No first char
1829    No need char
1830    
1831    /^[[:^alnum:]]/DZ
1832    ------------------------------------------------------------------
1833            Bra
1834            ^
1835            [\x00-/:-@[-`{-\xff] (neg)
1836            Ket
1837            End
1838    ------------------------------------------------------------------
1839    Capturing subpattern count = 0
1840    Options: anchored
1841    No first char
1842    No need char
1843    
1844    /^[[:alpha:]]/DZ
1845    ------------------------------------------------------------------
1846            Bra
1847            ^
1848            [A-Za-z]
1849            Ket
1850            End
1851    ------------------------------------------------------------------
1852    Capturing subpattern count = 0
1853    Options: anchored
1854    No first char
1855    No need char
1856    
1857    /^[[:^alpha:]]/DZ
1858    ------------------------------------------------------------------
1859            Bra
1860            ^
1861            [\x00-@[-`{-\xff] (neg)
1862            Ket
1863            End
1864    ------------------------------------------------------------------
1865    Capturing subpattern count = 0
1866    Options: anchored
1867    No first char
1868    No need char
1869    
1870    /[_[:alpha:]]/IS
1871    Capturing subpattern count = 0
1872    No options
1873    No first char
1874    No need char
1875    Subject length lower bound = 1
1876    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
1877      _ 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
1878    
1879    /^[[:ascii:]]/DZ
1880  ------------------------------------------------------------------  ------------------------------------------------------------------
1881    0  37 Bra 0          Bra
1882    3     ^          ^
1883    4     [0-9A-Za-z]          [\x00-\x7f]
1884   37  37 Ket          Ket
1885   40     End          End
1886  ------------------------------------------------------------------  ------------------------------------------------------------------
1887  Capturing subpattern count = 0  Capturing subpattern count = 0
1888  Options: anchored  Options: anchored
1889  No first char  No first char
1890  No need char  No need char
1891    
1892  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894    0  37 Bra 0          Bra
1895    3     ^          ^
1896    4     [A-Za-z]          [\x80-\xff] (neg)
1897   37  37 Ket          Ket
1898   40     End          End
1899  ------------------------------------------------------------------  ------------------------------------------------------------------
1900  Capturing subpattern count = 0  Capturing subpattern count = 0
1901  Options: anchored  Options: anchored
1902  No first char  No first char
1903  No need char  No need char
1904    
1905  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907    0  37 Bra 0          Bra
1908    3     ^          ^
1909    4     [\x00-\x7f]          [\x09 ]
1910   37  37 Ket          Ket
1911   40     End          End
1912  ------------------------------------------------------------------  ------------------------------------------------------------------
1913  Capturing subpattern count = 0  Capturing subpattern count = 0
1914  Options: anchored  Options: anchored
1915  No first char  No first char
1916  No need char  No need char
1917    
1918  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920    0  37 Bra 0          Bra
1921    3     ^          ^
1922    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1923   37  37 Ket          Ket
1924   40     End          End
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926  Capturing subpattern count = 0  Capturing subpattern count = 0
1927  Options: anchored  Options: anchored
1928  No first char  No first char
1929  No need char  No need char
1930    
1931  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1932    Capturing subpattern count = 0
1933    Contains explicit CR or LF match
1934    No options
1935    No first char
1936    No need char
1937    Subject length lower bound = 1
1938    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1939    
1940    /^[[:cntrl:]]/DZ
1941  ------------------------------------------------------------------  ------------------------------------------------------------------
1942    0  37 Bra 0          Bra
1943    3     ^          ^
1944    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1945   37  37 Ket          Ket
1946   40     End          End
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948  Capturing subpattern count = 0  Capturing subpattern count = 0
1949  Options: anchored  Options: anchored
1950  No first char  No first char
1951  No need char  No need char
1952    
1953  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1954  ------------------------------------------------------------------  ------------------------------------------------------------------
1955    0  37 Bra 0          Bra
1956    3     ^          ^
1957    4     [0-9]          [0-9]
1958   37  37 Ket          Ket
1959   40     End          End
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961  Capturing subpattern count = 0  Capturing subpattern count = 0
1962  Options: anchored  Options: anchored
1963  No first char  No first char
1964  No need char  No need char
1965    
1966  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968    0  37 Bra 0          Bra
1969    3     ^          ^
1970    4     [!-~]          [!-~]
1971   37  37 Ket          Ket
1972   40     End          End
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974  Capturing subpattern count = 0  Capturing subpattern count = 0
1975  Options: anchored  Options: anchored
1976  No first char  No first char
1977  No need char  No need char
1978    
1979  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981    0  37 Bra 0          Bra
1982    3     ^          ^
1983    4     [a-z]          [a-z]
1984   37  37 Ket          Ket
1985   40     End          End
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987  Capturing subpattern count = 0  Capturing subpattern count = 0
1988  Options: anchored  Options: anchored
1989  No first char  No first char
1990  No need char  No need char
1991    
1992  /^[[:print:]]/D  /^[[:print:]]/DZ
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994    0  37 Bra 0          Bra
1995    3     ^          ^
1996    4     [ -~]          [ -~]
1997   37  37 Ket          Ket
1998   40     End          End
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000  Capturing subpattern count = 0  Capturing subpattern count = 0
2001  Options: anchored  Options: anchored
2002  No first char  No first char
2003  No need char  No need char
2004    
2005  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:space:]]/D  /^[[:space:]]/DZ
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020    0  37 Bra 0          Bra
2021    3     ^          ^
2022    4     [\x09-\x0d ]          [\x09-\x0d ]
2023   37  37 Ket          Ket
2024   40     End          End
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026  Capturing subpattern count = 0  Capturing subpattern count = 0
2027  Options: anchored  Options: anchored
2028  No first char  No first char
2029  No need char  No need char
2030    
2031  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033    0  37 Bra 0          Bra
2034    3     ^          ^
2035    4     [A-Z]          [A-Z]
2036   37  37 Ket          Ket
2037   40     End          End
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039  Capturing subpattern count = 0  Capturing subpattern count = 0
2040  Options: anchored  Options: anchored
2041  No first char  No first char
2042  No need char  No need char
2043    
2044  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046    0  37 Bra 0          Bra
2047    3     ^          ^
2048    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2049   37  37 Ket          Ket
2050   40     End          End
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052  Capturing subpattern count = 0  Capturing subpattern count = 0
2053  Options: anchored  Options: anchored
2054  No first char  No first char
2055  No need char  No need char
2056    
2057  /^[[:word:]]/D  /^[[:word:]]/DZ
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059    0  37 Bra 0          Bra
2060    3     ^          ^
2061    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2062   37  37 Ket          Ket
2063   40     End          End
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065  Capturing subpattern count = 0  Capturing subpattern count = 0
2066  Options: anchored  Options: anchored
2067  No first char  No first char
2068  No need char  No need char
2069    
2070  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072    0  37 Bra 0          Bra
2073    3     ^          ^
2074    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2075   37  37 Ket          Ket
2076   40     End          End
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078  Capturing subpattern count = 0  Capturing subpattern count = 0
2079  Options: anchored  Options: anchored
2080  No first char  No first char
2081  No need char  No need char
2082    
2083  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085    0  37 Bra 0          Bra
2086    3     ^          ^
2087    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff] (neg)
2088   37  37 Ket          Ket
2089   40     End          End
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091  Capturing subpattern count = 0  Capturing subpattern count = 0
2092  Options: anchored  Options: anchored
2093  No first char  No first char
2094  No need char  No need char
2095    
2096  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098    0  37 Bra 0          Bra
2099    3     ^          ^
2100    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2101   37  37 Ket          Ket
2102   40     End          End
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104  Capturing subpattern count = 0  Capturing subpattern count = 0
2105  Options: anchored  Options: anchored
2106  No first char  No first char
2107  No need char  No need char
2108    
2109  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111    0  36 Bra 0          Bra
2112    3     [%0-1A-Za-z]          [%01A-Za-z]
2113   36  36 Ket          Ket
2114   39     End          End
2115  ------------------------------------------------------------------  ------------------------------------------------------------------
2116  Capturing subpattern count = 0  Capturing subpattern count = 0
2117  No options  No options
2118  No first char  No first char
2119  No need char  No need char
2120    
2121  /[[.ch.]]/  /[[.ch.]]/I
2122  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2123    
2124  /[[=ch=]]/  /[[=ch=]]/I
2125  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2126    
2127  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2128  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2129    
2130  /[[:upper:]]/i  /[[:upper:]]/Ii
2131  Capturing subpattern count = 0  Capturing subpattern count = 0
2132  Options: caseless  Options: caseless
2133  No first char  No first char
2134  No need char  No need char
2135      A      A
2136   0: A   0: A
2137      a      a
2138   0: a   0: a
2139    
2140  /[[:lower:]]/i  /[[:lower:]]/Ii
2141  Capturing subpattern count = 0  Capturing subpattern count = 0
2142  Options: caseless  Options: caseless
2143  No first char  No first char
2144  No need char  No need char
2145      A      A
2146   0: A   0: A
2147      a      a
2148   0: a   0: a
2149    
2150  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2151  Capturing subpattern count = 1  Capturing subpattern count = 1
2152  Options: caseless  Options: caseless
 Case state changes  
2153  No first char  No first char
2154  No need char  No need char
2155      ab      ab
# Line 2096  No need char Line 2163  No need char
2163   1: a   1: a
2164      Ab      Ab
2165  No match  No match
2166      AB      AB
2167  No match  No match
2168    
2169  /[\200-\410]/  /[\200-\110]/I
2170  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2171    
2172  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2173  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2174    
2175  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2176  Capturing subpattern count = 0  Capturing subpattern count = 0
2177  No options  No options
2178  First char = 'T'  First char = 'T'
2179  Need char = 'd'  Need char = 'd'
2180    
2181  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2182  Capturing subpattern count = 271  Capturing subpattern count = 271
2183  Max back reference = 270  Max back reference = 270
2184  No options  No options
# Line 2391  No need char Line 2458  No need char
2458  270: ABC  270: ABC
2459  271: ABC  271: ABC
2460    
2461  /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
2462  Capturing subpattern count = 0  Capturing subpattern count = 0
2463  No options  No options
2464  First char = 'T'  First char = 'T'
2465  Need char = 't'  Need char = 't'
2466    
2467  /(main(O)?)+/  /(main(O)?)+/I
2468  Capturing subpattern count = 2  Capturing subpattern count = 2
2469  No options  No options
2470  First char = 'm'  First char = 'm'
# Line 2409  Need char = 'n' Line 2476  Need char = 'n'
2476   0: mainOmain   0: mainOmain
2477   1: main   1: main
2478   2: O   2: O
2479    
2480  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2481  Capturing subpattern count = 1  Capturing subpattern count = 1
2482  No options  No options
2483  First char = 'T'  First char = 'T'
2484  Need char = 's'  Need char = 's'
2485    
2486  /^(a(b)?)+$/  /^(a(b)?)+$/I
2487  Capturing subpattern count = 2  Capturing subpattern count = 2
2488  Options: anchored  Options: anchored
2489  No first char  No first char
# Line 2425  No need char Line 2492  No need char
2492   0: aba   0: aba
2493   1: a   1: a
2494   2: b   2: b
2495    
2496  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2497  Capturing subpattern count = 2  Capturing subpattern count = 2
2498  Options: anchored  Options: anchored
2499  No first char  No first char
2500  No need char  No need char
2501      aabbaa      aabbaa
2502   0: aabbaa   0: aabbaa
2503   1: aa   1: aa
2504   2: bb   2: bb
2505    
2506  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2507  Capturing subpattern count = 2  Capturing subpattern count = 2
2508  Options: anchored  Options: anchored
2509  No first char  No first char
2510  No need char  No need char
2511      aabbaa      aabbaa
2512   0: aabbaa   0: aabbaa
2513   1: aa   1: aa
2514   2: bb   2: bb
2515    
2516  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2517  Capturing subpattern count = 2  Capturing subpattern count = 2
2518  Options: anchored  Options: anchored
2519  No first char  No first char
2520  No need char  No need char
2521      aabbaa      aabbaa
2522   0: aabbaa   0: aabbaa
2523   1: aa   1: aa
2524   2: bb   2: bb
2525    
2526  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2527  Capturing subpattern count = 1  Capturing subpattern count = 1
2528  Options: anchored  Options: anchored
2529  No first char  No first char
2530  No need char  No need char
2531      aabbaa      aabbaa
2532   0: aabbaa   0: aabbaa
2533   1: bb   1: bb
2534    
2535  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2536  Capturing subpattern count = 3  Capturing subpattern count = 3
2537  Options: anchored  Options: anchored
2538  No first char  No first char
2539  No need char  No need char
2540      aabbaa      aabbaa
2541   0: aabbaa   0: aabbaa
2542   1: aa   1: aa
2543   2: bb   2: bb
2544   3: b   3: b
2545    
2546  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2547  Capturing subpattern count = 2  Capturing subpattern count = 2
2548  Options: anchored  Options: anchored
2549  No first char  No first char
2550  No need char  No need char
2551      aabbaa      aabbaa
2552   0: aabbaa   0: aabbaa
2553   1: bb   1: bb
2554   2: b   2: b
2555    
2556  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2557  Capturing subpattern count = 1  Capturing subpattern count = 1
2558  Options: anchored  Options: anchored
2559  No first char  No first char
2560  No need char  No need char
2561      aabbaa      aabbaa
2562   0: aabbaa   0: aabbaa
2563   1: bb   1: bb
2564    
2565  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2566  Capturing subpattern count = 1  Capturing subpattern count = 1
2567  Options: anchored  Options: anchored
2568  No first char  No first char
2569  No need char  No need char
2570      aabbbaa      aabbbaa
2571   0: aabbbaa   0: aabbbaa
2572   1: bbb   1: bbb
2573    
2574  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2575  Capturing subpattern count = 1  Capturing subpattern count = 1
2576  Options: anchored  Options: anchored
2577  No first char  No first char
2578  No need char  No need char
2579      aabbbaa      aabbbaa
2580   0: aabbbaa   0: aabbbaa
2581   1: bbb   1: bbb
2582    
2583  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2584  Capturing subpattern count = 1  Capturing subpattern count = 1
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbaa      aabbaa
2589   0: aabbaa   0: aabbaa
2590   1: b   1: b
2591    
2592  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2593  Capturing subpattern count = 1  Capturing subpattern count = 1
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbbaa      aabbbaa
2598   0: aabbbaa   0: aabbbaa
2599   1: bb   1: bb
2600    
2601  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2602  Capturing subpattern count = 3  Capturing subpattern count = 3
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbbaa      aabbbaa
2607   0: aabbbaa   0: aabbbaa
2608   1: aa   1: aa
2609   2: bbb   2: bbb
2610   3: bb   3: bb
2611    
2612  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2613  Capturing subpattern count = 3  Capturing subpattern count = 3
2614  Options: anchored  Options: anchored
2615  No first char  No first char
2616  No need char  No need char
2617      aabbbbaa      aabbbbaa
2618   0: aabbbbaa   0: aabbbbaa
2619   1: aa   1: aa
2620   2: bbbb   2: bbbb
2621   3: bb   3: bb
2622    
2623  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2624  Capturing subpattern count = 0  Capturing subpattern count = 0
2625  No options  No options
2626  First char = '-'  First char = '-'
2627  Need char = '-'  Need char = '-'
2628    
2629  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2630  ------------------------------------------------------------------  ------------------------------------------------------------------
2631    0   3 Bra 0          Bra
2632    3   3 Ket          Ket
2633    6     End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
2640    
2641  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2642  ------------------------------------------------------------------  ------------------------------------------------------------------
2643    0   6 Bra 0          Bra
2644    3   1 a          a
2645    6   6 Ket          Ket
2646    9     End          End
2647  ------------------------------------------------------------------  ------------------------------------------------------------------
2648  Capturing subpattern count = 0  Capturing subpattern count = 0
2649  Options: extended  Options: extended
2650  First char = 'a'  First char = 'a'
2651  No need char  No need char
2652    
2653  /[\s]/D  /[\s]/DZ
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655    0  36 Bra 0          Bra
2656    3     [\x09-\x0a\x0c-\x0d ]          [\x09-\x0d ]
2657   36  36 Ket          Ket
2658   39     End          End
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
2660  Capturing subpattern count = 0  Capturing subpattern count = 0
2661  No options  No options
2662  No first char  No first char
2663  No need char  No need char
2664    
2665  /[\S]/D  /[\S]/DZ
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667    0  36 Bra 0          Bra
2668    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2669   36  36 Ket          Ket
2670   39     End          End
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
2672  Capturing subpattern count = 0  Capturing subpattern count = 0
2673  No options  No options
2674  No first char  No first char
2675  No need char  No need char
2676    
2677  /a(?i)b/D  /a(?i)b/DZ
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679    0  11 Bra 0          Bra
2680    3   1 a          a
2681    6  01 Opt       /i b
2682    8   1 b          Ket
2683   11  11 Ket          End
  14     End  
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685  Capturing subpattern count = 0  Capturing subpattern count = 0
2686  No options  No options
 Case state changes  
2687  First char = 'a'  First char = 'a'
2688  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2689      ab      ab
2690   0: ab   0: ab
2691      aB      aB
2692   0: aB   0: aB
2693      *** Failers      *** Failers
2694  No match  No match
2695      AB      AB
2696  No match  No match
2697    
2698  /(a(?i)b)/D  /(a(?i)b)/DZ
2699  ------------------------------------------------------------------  ------------------------------------------------------------------
2700    0  19 Bra 0          Bra
2701    3  11 Bra 1          CBra 1
2702    6   1 a          a
2703    9  01 Opt       /i b
2704   11   1 b          Ket
2705   14  11 Ket          Ket
2706   17  00 Opt          End
  19  19 Ket  
  22     End  
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
2708  Capturing subpattern count = 1  Capturing subpattern count = 1
2709  No options  No options
 Case state changes  
2710  First char = 'a'  First char = 'a'
2711  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2712      ab      ab
# Line 2654  Need char = 'b' (caseless) Line 2715  Need char = 'b' (caseless)
2715      aB      aB
2716   0: aB   0: aB
2717   1: aB   1: aB
2718      *** Failers      *** Failers
2719  No match  No match
2720      AB      AB
2721  No match  No match
2722    
2723  /   (?i)abc/xD  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725    0   8 Bra 0          Bra
2726    3   3 abc       /i abc
2727    8   8 Ket          Ket
2728   11     End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
2730  Capturing subpattern count = 0  Capturing subpattern count = 0
2731  Options: caseless extended  Options: caseless extended
# Line 2672  First char = 'a' (caseless) Line 2733  First char = 'a' (caseless)
2733  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2734    
2735  /#this is a comment  /#this is a comment
2736    (?i)abc/xD    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738    0   8 Bra 0          Bra
2739    3   3 abc       /i abc
2740    8   8 Ket          Ket
2741   11     End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743  Capturing subpattern count = 0  Capturing subpattern count = 0
2744  Options: caseless extended  Options: caseless extended
2745  First char = 'a' (caseless)  First char = 'a' (caseless)
2746  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2747    
2748  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750    0 307 Bra 0          Bra
2751    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2752  255  50 12345678901234567890123456789012345678901234567890          Ket
2753  307 307 Ket          End
 310     End  
2754  ------------------------------------------------------------------  ------------------------------------------------------------------
2755  Capturing subpattern count = 0  Capturing subpattern count = 0
2756  No options  No options
2757  First char = '1'  First char = '1'
2758  Need char = '0'  Need char = '0'
2759    
2760  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2761  ------------------------------------------------------------------  ------------------------------------------------------------------
2762    0 307 Bra 0          Bra
2763    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2764  255  50 12345678901234567890123456789012345678901234567890          Ket
2765  307 307 Ket          End
 310     End  
2766  ------------------------------------------------------------------  ------------------------------------------------------------------
2767  Capturing subpattern count = 0  Capturing subpattern count = 0
2768  No options  No options
2769  First char = '1'  First char = '1'
2770  Need char = '0'  Need char = '0'
2771    
2772  /\Q\E/D  /\Q\E/DZ
2773  ------------------------------------------------------------------  ------------------------------------------------------------------
2774    0   3 Bra 0          Bra
2775    3   3 Ket          Ket
2776    6     End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
2783      \      \
2784   0:   0:
2785    
2786  /\Q\Ex/D  /\Q\Ex/DZ
2787  ------------------------------------------------------------------  ------------------------------------------------------------------
2788    0   6 Bra 0          Bra
2789    3   1 x          x
2790    6   6 Ket          Ket
2791    9     End          End
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793  Capturing subpattern count = 0  Capturing subpattern count = 0
2794  No options  No options
2795  First char = 'x'  First char = 'x'
2796  No need char  No need char
2797    
2798  / \Q\E/D  / \Q\E/DZ
2799  ------------------------------------------------------------------  ------------------------------------------------------------------
2800    0   6 Bra 0          Bra
2801    3   1  
2802    6   6 Ket          Ket
2803    9     End          End
2804  ------------------------------------------------------------------  ------------------------------------------------------------------
2805  Capturing subpattern count = 0  Capturing subpattern count = 0
2806  No options  No options
2807  First char = ' '  First char = ' '
2808  No need char  No need char
2809    
2810  /a\Q\E/D  /a\Q\E/DZ
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812    0   6 Bra 0          Bra
2813    3   1 a          a
2814    6   6 Ket          Ket
2815    9     End          End
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817  Capturing subpattern count = 0  Capturing subpattern count = 0
2818  No options  No options
# Line 2762  No need char Line 2822  No need char
2822   0: a   0: a
2823    bca    bca
2824   0: a   0: a
2825    bac    bac
2826   0: a   0: a
2827    
2828  /a\Q\Eb/D  /a\Q\Eb/DZ
2829  ------------------------------------------------------------------  ------------------------------------------------------------------
2830    0   9 Bra 0          Bra
2831    3   1 a          ab
2832    6   1 b          Ket
2833    9   9 Ket          End
  12     End  
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835  Capturing subpattern count = 0  Capturing subpattern count = 0
2836  No options  No options
# Line 2780  Need char = 'b' Line 2839  Need char = 'b'
2839    abc    abc
2840   0: ab   0: ab
2841    
2842  /\Q\Eabc/D  /\Q\Eabc/DZ
2843  ------------------------------------------------------------------  ------------------------------------------------------------------
2844    0   8 Bra 0          Bra
2845    3   3 abc          abc
2846    8   8 Ket          Ket
2847   11     End          End
2848  ------------------------------------------------------------------  ------------------------------------------------------------------
2849  Capturing subpattern count = 0  Capturing subpattern count = 0
2850  No options  No options
2851  First char = 'a'  First char = 'a'
2852  Need char = 'c'  Need char = 'c'
2853    
2854  /x*+\w/D  /x*+\w/DZ
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856    0  12 Bra 0          Bra
2857    3   5 Once          x*+
2858    6     x*          \w
2859    8   5 Ket          Ket
2860   11     \w          End
  12  12 Ket  
  15     End  
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862  Capturing subpattern count = 0  Capturing subpattern count = 0
2863  No options  No options
# Line 2810  No need char Line 2867  No need char
2867   0: F   0: F
2868      xxxxx      xxxxx
2869  No match  No match
2870    
2871  /x?+/D  /x?+/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0  11 Bra 0          Bra
2874    3   5 Once          x?+
2875    6     x?          Ket
2876    8   5 Ket          End
  11  11 Ket  
  14     End  
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
2883    
2884  /x++/D  /x++/DZ
2885  ------------------------------------------------------------------  ------------------------------------------------------------------
2886    0  11 Bra 0          Bra
2887    3   5 Once          x++
2888    6     x+          Ket
2889    8   5 Ket          End
  11  11 Ket  
  14     End  
2890  ------------------------------------------------------------------  ------------------------------------------------------------------
2891  Capturing subpattern count = 0  Capturing subpattern count = 0
2892  No options  No options
2893  First char = 'x'  First char = 'x'
2894  No need char  No need char
2895    
2896  /x{1,3}+/D  /x{1,3}+/BZO
2897  ------------------------------------------------------------------  ------------------------------------------------------------------
2898    0  16 Bra 0          Bra
2899    3  10 Once          x
2900    6   1 x          x{0,2}+
2901    9     x{,2}          Ket
2902   13  10 Ket          End
2903   16  16 Ket  ------------------------------------------------------------------
2904   19     End  
2905    /x{1,3}+/BZOi
2906    ------------------------------------------------------------------
2907            Bra
2908         /i x
2909         /i x{0,2}+
2910            Ket
2911            End
2912  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2913    
2914  /(x)*+/D  /[^x]{1,3}+/BZO
2915  ------------------------------------------------------------------  ------------------------------------------------------------------
2916    0  19 Bra 0          Bra
2917    3  13 Once          [^x]
2918    6     Brazero          [^x]{0,2}+
2919    7   6 Bra 1          Ket
2920   10   1 x          End
2921   13   6 KetRmax  ------------------------------------------------------------------
2922   16  13 Ket  
2923   19  19 Ket  /[^x]{1,3}+/BZOi
2924   22     End  ------------------------------------------------------------------
2925            Bra
2926         /i [^x]
2927         /i [^x]{0,2}+
2928            Ket
2929            End
2930    ------------------------------------------------------------------
2931    
2932    /(x)*+/DZ
2933    ------------------------------------------------------------------
2934            Bra
2935            Braposzero
2936            CBraPos 1
2937            x
2938            KetRpos
2939            Ket
2940            End
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 1  Capturing subpattern count = 1
2943    May match empty string
2944  No options  No options
2945  No first char  No first char
2946  No need char  No need char
2947    
2948  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2949  Capturing subpattern count = 1  Capturing subpattern count = 1
2950    May match empty string
2951  Options: anchored  Options: anchored
2952  No first char  No first char
2953  No need char  No need char
# Line 2883  No need char Line 2958  No need char
2958  No match  No match
2959      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2960  No match  No match
2961    
2962  /(\d++)(\w)/  /(\d++)(\w)/I
2963  Capturing subpattern count = 2  Capturing subpattern count = 2
2964  No options  No options
2965  No first char  No first char
# Line 2895  No need char Line 2970  No need char
2970   2: a   2: a
2971      *** Failers      *** Failers
2972  No match  No match
2973      12345+      12345+
2974  No match  No match
2975    
2976  /a++b/  /a++b/I
2977  Capturing subpattern count = 0  Capturing subpattern count = 0
2978  No options  No options
2979  First char = 'a'  First char = 'a'
# Line 2906  Need char = 'b' Line 2981  Need char = 'b'
2981      aaab      aaab
2982   0: aaab   0: aaab
2983    
2984  /(a++b)/  /(a++b)/I
2985  Capturing subpattern count = 1  Capturing subpattern count = 1
2986  No options  No options
2987  First char = 'a'  First char = 'a'
# Line 2915  Need char = 'b' Line 2990  Need char = 'b'
2990   0: aaab   0: aaab
2991   1: aaab   1: aaab
2992    
2993  /(a++)b/  /(a++)b/I
2994  Capturing subpattern count = 1  Capturing subpattern count = 1
2995  No options  No options
2996  First char = 'a'  First char = 'a'
# Line 2924  Need char = 'b' Line 2999  Need char = 'b'
2999   0: aaab   0: aaab
3000   1: aaa   1: aaa
3001    
3002  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3003  Capturing subpattern count = 1  Capturing subpattern count = 1
3004  No options  No options
3005  No first char  No first char
# Line 2932  No need char Line 3007  No need char
3007      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3008   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3009   1: x   1: x
3010    
3011  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3012  Capturing subpattern count = 1  Capturing subpattern count = 1
3013  No options  No options
3014  First char = '('  First char = '('
# Line 2946  Need char = ')' Line 3021  Need char = ')'
3021   1: xyz   1: xyz
3022      *** Failers      *** Failers
3023  No match  No match
3024      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3025  No match  No match
3026    
3027  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3028  ------------------------------------------------------------------  ------------------------------------------------------------------
3029    0  50 Bra 0          Bra
3030    3  44 Once          Once
3031    6   8 Bra 1          CBra 1
3032    9   3 abc          abc
3033   14   8 Ket          Ket
3034   17     Brazero          Brazero
3035   18  26 Bra 0          Bra
3036   21   8 Bra 1          CBra 1
3037   24   3 abc          abc
3038   29   8 Ket          Ket
3039   32     Brazero          Brazero
3040   33   8 Bra 1          CBra 1
3041   36   3 abc          abc
3042   41   8 Ket          Ket
3043   44  26 Ket          Ket
3044   47  44 Ket          Ket
3045   50  50 Ket          Ket
3046   53     End          End
3047  ------------------------------------------------------------------  ------------------------------------------------------------------
3048  Capturing subpattern count = 1  Capturing subpattern count = 1
3049  No options  No options
3050  First char = 'a'  First char = 'a'
3051  Need char = 'c'  Need char = 'c'
3052    
3053  /a+?+/  /a+?+/I
3054  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3055    
3056  /a{2,3}?+b/  /a{2,3}?+b/I
3057  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3058    
3059  /(?U)a+?+/  /(?U)a+?+/I
3060  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3061    
3062  /a{2,3}?+b/U  /a{2,3}?+b/IU
3063  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3064    
3065  /x(?U)a++b/D  /x(?U)a++b/DZ
3066  ------------------------------------------------------------------  ------------------------------------------------------------------
3067    0  17 Bra 0          Bra
3068    3   1 x          x
3069    6   5 Once          a++
3070    9     a+          b
3071   11   5 Ket          Ket
3072   14   1 b          End
  17  17 Ket  
  20     End  
3073  ------------------------------------------------------------------  ------------------------------------------------------------------
3074  Capturing subpattern count = 0  Capturing subpattern count = 0
3075  No options  No options
# Line 3005  Need char = 'b' Line 3078  Need char = 'b'
3078      xaaaab      xaaaab
3079   0: xaaaab   0: xaaaab
3080    
3081  /(?U)xa++b/D  /(?U)xa++b/DZ
3082  ------------------------------------------------------------------  ------------------------------------------------------------------
3083    0  17 Bra 0          Bra
3084    3   1 x          x
3085    6   5 Once          a++
3086    9     a+          b
3087   11   5 Ket          Ket
3088   14   1 b          End
  17  17 Ket  
  20     End  
3089  ------------------------------------------------------------------  ------------------------------------------------------------------
3090  Capturing subpattern count = 0  Capturing subpattern count = 0
3091  Options: ungreedy  Options: ungreedy
# Line 3023  Need char = 'b' Line 3094  Need char = 'b'
3094      xaaaab      xaaaab
3095   0: xaaaab   0: xaaaab
3096    
3097  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3098  ------------------------------------------------------------------  ------------------------------------------------------------------
3099    0 106 Bra 0          Bra
3100    3     ^          ^
3101    4  99 Bra 1          CBra 1
3102    7   5 Bra 2          CBra 2
3103   10     a+          a+
3104   12   5 Ket          Ket
3105   15  37 Bra 3          CBra 3
3106   18     [a-b]+?          [ab]+?
3107   52  37 Ket          Ket
3108   55  37 Bra 4          CBra 4
3109   58     [b-c]+          [bc]+
3110   92  37 Ket          Ket
3111   95   5 Bra 5          CBra 5
3112   98     \w*          \w*+
3113  100   5 Ket          Ket
3114  103  99 Ket          Ket
3115  106 106 Ket          Ket
3116  109     End          End
3117  ------------------------------------------------------------------  ------------------------------------------------------------------
3118  Capturing subpattern count = 5  Capturing subpattern count = 5
3119  Options: anchored  Options: anchored
3120  No first char  No first char
3121  No need char  No need char
3122    
3123  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  12 Bra 0          Bra
3126    3     ^          ^
3127    4   1 x          x
3128    7     a+?          a++
3129    9   1 b          b
3130   12  12 Ket          Ket
3131   15     End          End
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133  Capturing subpattern count = 0  Capturing subpattern count = 0
3134  Options: anchored  Options: anchored
3135  No first char  No first char
3136  Need char = 'b'  Need char = 'b'
3137    
3138  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3139  ------------------------------------------------------------------  ------------------------------------------------------------------
3140    0  18 Bra 0          Bra
3141    3     ^          ^
3142    4   1 x          x
3143    7   5 Bra 1          CBra 1
3144   10     a+?          a+?
3145   12   5 Ket          Ket
3146   15   1 b          b
3147   18  18 Ket          Ket
3148   21     End          End
3149  ------------------------------------------------------------------  ------------------------------------------------------------------
3150  Capturing subpattern count = 1  Capturing subpattern count = 1
3151  Options: anchored  Options: anchored
3152  No first char  No first char
3153  Need char = 'b'  Need char = 'b'
3154    
3155  /[.x.]/  /[.x.]/I
3156  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3157    
3158  /[=x=]/  /[=x=]/I
3159  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3160    
3161  /[:x:]/  /[:x:]/I
3162  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
3163    
3164  /\l/  /\l/I
3165  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
   
 /\L/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\N{name}/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
3166    
3167  /\pP/  /\L/I
3168  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3169    
3170  /\PP/  /\N{name}/I
3171  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3172    
3173  /\p{prop}/  /\u/I
3174  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3175    
3176  /\P{prop}/  /\U/I
3177  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3178    
3179  /\u/  /[/I
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\U/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\X/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /[/  
3180  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3181    
3182  /[a-/  /[a-/I
3183  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3184    
3185  /[[:space:]/  /[[:space:]/I
3186  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3187    
3188  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3189  ------------------------------------------------------------------  ------------------------------------------------------------------
3190    0  36 Bra 0          Bra
3191    3     [\x09-\x0a\x0c-\x0d ]          [\x09-\x0d ]
3192   36  36 Ket          Ket
3193   39     End          End
3194  ------------------------------------------------------------------  ------------------------------------------------------------------
3195  Capturing subpattern count = 0  Capturing subpattern count = 0
3196  No options  No options
3197  No first char  No first char
3198  No need char  No need char
3199    
3200  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3201  ------------------------------------------------------------------  ------------------------------------------------------------------
3202    0  36 Bra 0          Bra
3203    3     [\x09-\x0d ]          [\x09-\x0d ]
3204   36  36 Ket          Ket
3205   39     End          End
3206  ------------------------------------------------------------------  ------------------------------------------------------------------
3207  Capturing subpattern count = 0  Capturing subpattern count = 0
3208  No options  No options
3209  No first char  No first char
3210  No need char  No need char
3211    
3212  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3213  ------------------------------------------------------------------  ------------------------------------------------------------------
3214    0  36 Bra 0          Bra
3215    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3216   36  36 Ket          Ket
3217   39     End          End
3218  ------------------------------------------------------------------  ------------------------------------------------------------------
3219  Capturing subpattern count = 0  Capturing subpattern count = 0
3220  No options  No options
3221  No first char  No first char
3222  No need char  No need char
3223    
3224  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3225  Capturing subpattern count = 0  Capturing subpattern count = 0
3226  Options: extended  Options: extended
3227  First char = '<'  First char = '<'
# Line 3181  Need char = '>' Line 3234  Need char = '>'
3234   0: <abc <123> hij>   0: <abc <123> hij>
3235      <abc <def> hij>      <abc <def> hij>
3236   0: <def>   0: <def>
3237      <abc<>def>      <abc<>def>
3238   0: <abc<>def>   0: <abc<>def>
3239      <abc<>      <abc<>
3240   0: <>   0: <>
3241      *** Failers      *** Failers
3242  No match  No match
3243      <abc      <abc
3244  No match  No match
3245    
3246  |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): 421  
3247  ------------------------------------------------------------------  ------------------------------------------------------------------
3248    0 417 Bra 0          Bra
3249    3 250 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:          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
3250  255 159 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
3251  416     \b          Ket
3252  417 417 Ket          End
 420     End  
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254  Capturing subpattern count = 0  Capturing subpattern count = 0
3255    Max lookbehind = 1
3256  No options  No options
3257  First char = '8'  First char = '8'
3258  Need char = 'X'  Need char = 'X'
3259    
3260  |\$\<\.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): 416  
3261  ------------------------------------------------------------------  ------------------------------------------------------------------
3262    0 412 Bra 0          Bra
3263    3 250 $<.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[          $<.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
3264  255 154 %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
3265  411     \b          Ket
3266  412 412 Ket          End
 415     End  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268  Capturing subpattern count = 0  Capturing subpattern count = 0
3269    Max lookbehind = 1
3270  No options  No options
3271  First char = '$'  First char = '$'
3272  Need char = 'X'  Need char = 'X'
# Line 3230  No need char Line 3281  No need char
3281  /(.*)\d+/I  /(.*)\d+/I
3282  Capturing subpattern count = 1  Capturing subpattern count = 1
3283  No options  No options
3284  First char at start or follows \n  First char at start or follows newline
3285  No need char  No need char
3286    
3287  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3288  Capturing subpattern count = 1  Capturing subpattern count = 1
3289  Max back reference = 1  Max back reference = 1
# Line 3250  No need char Line 3301  No need char
3301  Capturing subpattern count = 2  Capturing subpattern count = 2
3302  Max back reference = 2  Max back reference = 2
3303  No options  No options
3304  First char at start or follows \n  First char at start or follows newline
3305  Need char = 'z'  Need char = 'z'
3306    
3307  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3263  No need char Line 3314  No need char
3314   0: bc123bc   0: bc123bc
3315   1: bc   1: bc
3316   2: bc   2: bc
3317    
3318  /a[b]/I  /a[b]/I
3319  Capturing subpattern count = 0  Capturing subpattern count = 0
3320  No options  No options
# Line 3272  Need char = 'b' Line 3323  Need char = 'b'
3323    
3324  /(?=a).*/I  /(?=a).*/I
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326    May match empty string
3327  No options  No options
3328  First char = 'a'  First char = 'a'
3329  No need char  No need char
3330    
3331  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3332  Capturing subpattern count = 0  Capturing subpattern count = 0
3333  Options: caseless  Options: caseless
3334  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3285  Need char = 'z' (caseless) Line 3337  Need char = 'z' (caseless)
3337  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3338  Capturing subpattern count = 0  Capturing subpattern count = 0
3339  No options  No options
 Case state changes  
3340  First char = 'a'  First char = 'a'
3341  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3342    
3343  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3344  Capturing subpattern count = 0  Capturing subpattern count = 0
3345    May match empty string
3346  No options  No options
3347  First char = 'a'  First char = 'a'
3348  No need char  No need char
# Line 3319  No options Line 3371  No options
3371  No first char  No first char
3372  Need char = 'a'  Need char = 'a'
3373    
3374  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3375  Capturing subpattern count = 0  Capturing subpattern count = 1
3376  No options  No options
3377  First char = 'a'  First char = 'a'
3378  No need char  No need char
3379    
3380  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3381  Capturing subpattern count = 0  Capturing subpattern count = 1
3382  No options  No options
3383  First char = 'a'  First char = 'a'
3384  Need char = 'z'  Need char = 'z'
3385    
3386  /(?(1)abz)/I  /(?(1)abz)(.)/I
3387  Capturing subpattern count = 0  Capturing subpattern count = 1
3388  No options  No options
3389  No first char  No first char
3390  No need char  No need char
3391    
3392  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3393  Capturing subpattern count = 0  Capturing subpattern count = 1
3394  No options  No options
3395  No first char  No first char
3396  Need char = '3'  Need char = '3'
# Line 3357  Need char = 'a' Line 3409  Need char = 'a'
3409    
3410  /(a)*/I  /(a)*/I
3411  Capturing subpattern count = 1  Capturing subpattern count = 1
3412    May match empty string
3413  No options  No options
3414  No first char  No first char
3415  No need char  No need char
# Line 3378  Capturing subpattern count = 0 Line 3431  Capturing subpattern count = 0
3431  No options  No options
3432  No first char  No first char
3433  No need char  No need char
3434  Study size = 40  Subject length lower bound = 1
3435  Starting character set: a b  Starting byte set: a b
3436    
3437  /[^a]/I  /[^a]/I
3438  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3398  Capturing subpattern count = 0 Line 3451  Capturing subpattern count = 0
3451  No options  No options
3452  No first char  No first char
3453  Need char = '6'  Need char = '6'
3454  Study size = 40  Subject length lower bound = 4
3455  Starting character set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3456    
3457  /a^b/I  /a^b/I
3458  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3407  No options Line 3460  No options
3460  First char = 'a'  First char = 'a'
3461  Need char = 'b'  Need char = 'b'
3462    
3463  /^a/mI  /^a/Im
3464  Capturing subpattern count = 0  Capturing subpattern count = 0
3465  Options: multiline  Options: multiline
3466  First char at start or follows \n  First char at start or follows newline
3467  Need char = 'a'  Need char = 'a'
3468    abcde    abcde
3469   0: a   0: a
3470    xy\nabc    xy\nabc
3471   0: a   0: a
3472    *** Failers    *** Failers
3473  No match  No match
3474    xyabc    xyabc
3475  No match  No match
3476    
3477  /c|abc/I  /c|abc/I
# Line 3432  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  Options: caseless  Options: caseless
3486  No first char  No first char
3487  No need char  No need char
3488  Study size = 40  Subject length lower bound = 1
3489  Starting character set: A B a b  Starting byte set: A B a b
3490    
3491  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3492  Capturing subpattern count = 0  Capturing subpattern count = 0
3493  No options  No options
 Case state changes  
3494  No first char  No first char
3495  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3496  Study size = 40  Subject length lower bound = 3
3497  Starting character set: a b  Starting byte set: a b
3498    
3499  /abc(?C)def/  /abc(?C)def/I
3500  Capturing subpattern count = 0  Capturing subpattern count = 0
3501  No options  No options
3502  First char = 'a'  First char = 'a'
3503  Need char = 'f'  Need char = 'f'
3504      abcdef      abcdef
3505  --->abcdef  --->abcdef
3506    0 ^  ^    0 ^  ^       d
3507   0: abcdef   0: abcdef
3508      1234abcdef      1234abcdef
3509  --->1234abcdef  --->1234abcdef
3510    0     ^  ^    0     ^  ^       d
3511   0: abcdef   0: abcdef
3512      *** Failers      *** Failers
3513  No match  No match
3514      abcxyz      abcxyz
3515  No match  No match
3516      abcxyzf      abcxyzf
3517  --->abcxyzf  --->abcxyzf
3518    0 ^  ^    0 ^  ^        d
3519  No match  No match
3520    
3521  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3522  Capturing subpattern count = 0  Capturing subpattern count = 0
3523  No options  No options
3524  First char = 'a'  First char = 'a'
3525  Need char = 'f'  Need char = 'f'
3526      123abcdef      123abcdef
3527  --->123abcdef  --->123abcdef
3528    0    ^  ^    0    ^  ^       d
3529    1    ^    ^    1    ^    ^     f
3530   0: abcdef   0: abcdef
3531    
3532  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3533    Capturing subpattern count = 0
3534    No options
3535    No first char
3536    Need char = 'f'
3537    Subject length lower bound = 7
3538    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3539        1234abcdef
3540    --->1234abcdef
3541      1 ^              \d
3542      1  ^             \d
3543      1   ^            \d
3544      1    ^           \d
3545      2    ^   ^       d
3546     0: 4abcdef
3547        *** Failers
3548    No match
3549        abcdef
3550    No match
3551    
3552    /(?C1)\dabc(?C2)def/ISS
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  No first char  No first char
3556  Need char = 'f'  Need char = 'f'
3557      1234abcdef      1234abcdef
3558  --->1234abcdef  --->1234abcdef
3559    1 ^    1 ^              \d
3560    1  ^    1  ^             \d
3561    1   ^    1   ^            \d
3562    1    ^    1    ^           \d
3563    2    ^   ^    2    ^   ^       d
3564   0: 4abcdef   0: 4abcdef
3565      *** Failers      *** Failers
3566  No match  No match
3567      abcdef      abcdef
3568  --->abcdef  --->abcdef
3569    1 ^    1 ^          \d
3570    1  ^    1  ^         \d
3571    1   ^    1   ^        \d
3572    1    ^    1    ^       \d
3573    1     ^    1     ^      \d
3574    1      ^    1      ^     \d
3575  No match  No match
3576    
3577  /(?C255)ab/  /(?C255)ab/I
3578  Capturing subpattern count = 0  Capturing subpattern count = 0
3579  No options  No options
3580  First char = 'a'  First char = 'a'
3581  Need char = 'b'  Need char = 'b'
3582    
3583  /(?C256)ab/  /(?C256)ab/I
3584  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3585    
3586  /(?Cab)xx/  /(?Cab)xx/I
3587  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3588    
3589  /(?C12vr)x/  /(?C12vr)x/I
3590  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3591    
3592  /abc(?C)def/  /abc(?C)def/I
3593  Capturing subpattern count = 0  Capturing subpattern count = 0
3594  No options  No options
3595  First char = 'a'  First char = 'a'
# Line 3526  Need char = 'f' Line 3598  Need char = 'f'
3598  No match  No match
3599      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3600  --->\x83\x00abcdef  --->\x83\x00abcdef
3601    0         ^  ^    0         ^  ^       d
3602   0: abcdef   0: abcdef
3603    
3604  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3605  Capturing subpattern count = 1  Capturing subpattern count = 1
3606  No options  No options
3607  First char = 'a'  First char = 'a'
3608  Need char = 'f'  Need char = 'f'
3609      123abcdef      123abcdef
3610  --->123abcdef  --->123abcdef
3611    0    ^  ^    0    ^  ^       d
3612    1    ^    ^    1    ^    ^     f
3613   0: abcdef   0: abcdef
3614   1: abc   1: abc
3615      123abcdef\C+      123abcdef\C+
3616  Callout 0: last capture = 1  Callout 0: last capture = 1
3617   0: <unset>   0: <unset>
3618   1: abc   1: abc
3619  --->123abcdef  --->123abcdef
3620         ^  ^         ^  ^       d
3621  Callout 1: last capture = 1  Callout 1: last capture = 1
3622   0: <unset>   0: <unset>
3623   1: abc   1: abc
3624  --->123abcdef  --->123abcdef
3625         ^    ^         ^    ^     f
3626   0: abcdef   0: abcdef
3627   1: abc   1: abc
3628      123abcdef\C-      123abcdef\C-
3629   0: abcdef   0: abcdef
3630   1: abc   1: abc
3631      *** Failers      *** Failers
3632  No match  No match
3633      123abcdef\C!1      123abcdef\C!1
3634  --->123abcdef  --->123abcdef
3635    0    ^  ^    0    ^  ^       d
3636    1    ^    ^    1    ^    ^     f
3637  No match  No match
3638    
3639  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3640  Capturing subpattern count = 1  Capturing subpattern count = 1
3641    May match empty string
3642  No options  No options
3643  No first char  No first char
3644  No need char  No need char
3645      abcabcabc      abcabcabc
3646  --->abcabcabc  --->abcabcabc
3647    0 ^    0 ^             (abc(?C1))*
3648    1 ^  ^    1 ^  ^          )
3649    1 ^     ^    1 ^     ^       )
3650    1 ^        ^    1 ^        ^    )
3651   0: abcabcabc   0: abcabcabc
3652   1: abc   1: abc
3653      abcabc\C!1!3      abcabc\C!1!3
3654  --->abcabc  --->abcabc
3655    0 ^    0 ^          (abc(?C1))*
3656    1 ^  ^    1 ^  ^       )
3657    1 ^     ^    1 ^     ^    )
3658   0: abcabc   0: abcabc
3659   1: abc   1: abc
3660      *** Failers      *** Failers
3661  --->*** Failers  --->*** Failers
3662    0 ^    0 ^               (abc(?C1))*
3663   0:   0:
3664      abcabcabc\C!1!3      abcabcabc\C!1!3
3665  --->abcabcabc  --->abcabcabc
3666    0 ^    0 ^             (abc(?C1))*
3667    1 ^  ^    1 ^  ^          )
3668    1 ^     ^    1 ^     ^       )
3669    1 ^        ^    1 ^        ^    )
3670   0: abcabc   0: abcabc
3671   1: abc   1: abc
3672    
3673  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3674  Capturing subpattern count = 1  Capturing subpattern count = 1
3675    May match empty string
3676  No options  No options
3677  No first char  No first char
3678  No need char  No need char
# Line 3606  No need char Line 3680  No need char
3680  Callout 0: last capture = -1  Callout 0: last capture = -1
3681   0: <unset>   0: <unset>
3682  --->123  --->123
3683      ^  ^      ^  ^    )
3684   0: 123   0: 123
3685   1: 123   1: 123
3686      123456\C+      123456\C+
3687  Callout 0: last capture = -1  Callout 0: last capture = -1
3688   0: <unset>   0: <unset>
3689  --->123456  --->123456
3690      ^  ^      ^  ^       )
3691  Callout 0: last capture = 1  Callout 0: last capture = 1
3692   0: <unset>   0: <unset>
3693   1: 123   1: 123
3694  --->123456  --->123456
3695      ^     ^      ^     ^    )
3696   0: 123456   0: 123456
3697   1: 456   1: 456
3698      123456789\C+      123456789\C+
3699  Callout 0: last capture = -1  Callout 0: last capture = -1
3700   0: <unset>   0: <unset>
3701  --->123456789  --->123456789
3702      ^  ^      ^  ^          )
3703  Callout 0: last capture = 1  Callout 0: last capture = 1
3704   0: <unset>   0: <unset>
3705   1: 123   1: 123
3706  --->123456789  --->123456789
3707      ^     ^      ^     ^       )
3708  Callout 0: last capture = 1  Callout 0: last capture = 1
3709   0: <unset>   0: <unset>
3710   1: 456   1: 456
3711  --->123456789  --->123456789
3712      ^        ^      ^        ^    )
3713   0: 123456789   0: 123456789
3714   1: 789   1: 789
3715    
3716  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3717  Capturing subpattern count = 2  Capturing subpattern count = 2
3718  No options  No options
3719  First char = 'x'  First char = 'x'
# Line 3650  Callout 0: last capture = 2 Line 3724  Callout 0: last capture = 2
3724   1: <unset>   1: <unset>
3725   2: xyz   2: xyz
3726  --->xyzabc  --->xyzabc
3727      ^  ^      ^  ^       p
3728  Callout 1: last capture = -1  Callout 1: last capture = -1
3729   0: <unset>   0: <unset>
3730  --->xyzabc  --->xyzabc
3731      ^      ^          x
3732   0: xyzabc   0: xyzabc
3733   1: xyzabc   1: xyzabc
3734    
3735  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3736  Capturing subpattern count = 3  Capturing subpattern count = 3
3737  No options  No options
3738  First char = 'X'  First char = 'X'
# Line 3670  Callout 0: last capture = 3 Line 3744  Callout 0: last capture = 3
3744   2: <unset>   2: <unset>
3745   3: xyz   3: xyz
3746  --->Xxyzabc  --->Xxyzabc
3747      ^   ^      ^   ^       p
3748  Callout 1: last capture = 1  Callout 1: last capture = 1
3749   0: <unset>   0: <unset>
3750   1: X   1: X
3751  --->Xxyzabc  --->Xxyzabc
3752      ^^      ^^          x
3753   0: Xxyzabc   0: Xxyzabc
3754   1: X   1: X
3755   2: xyzabc   2: xyzabc
3756    
3757  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3758  Capturing subpattern count = 1  Capturing subpattern count = 1
3759  No options  No options
3760  First char = 'a'  First char = 'a'
# Line 3690  Callout 0: last capture = 1 Line 3764  Callout 0: last capture = 1
3764   0: <unset>   0: <unset>
3765   1: abc   1: abc
3766  --->abcdef  --->abcdef
3767      ^      ^          a
3768   0: abcdef   0: abcdef
3769   1: abc   1: abc
3770    
3771  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3772  Capturing subpattern count = 1  Capturing subpattern count = 1
3773  No options  No options
3774  First char = 'a'  First char = 'a'
3775  Need char = 'z'  Need char = 'z'
3776      abcxyz\C+      abcxyz\C+
3777  Callout 1: last capture = 1  Callout 1: last capture = 1
3778   0: <unset>   0: <unset>
3779   1: abc   1: abc
3780  --->abcxyz  --->abcxyz
3781      ^  ^      ^  ^       d
3782  Callout 2: last capture = -1  Callout 2: last capture = -1
3783   0: <unset>   0: <unset>
3784  --->abcxyz  --->abcxyz
3785      ^      ^          a
3786   0: abcxyz   0: abcxyz
3787    
3788  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3789  Capturing subpattern count = 1  Capturing subpattern count = 1
3790    Max lookbehind = 3
3791  No options  No options
3792  First char = 'x'  First char = 'x'
3793  Need char = 'z'  Need char = 'z'
# Line 3721  Callout 0: last capture = 1 Line 3796  Callout 0: last capture = 1
3796   0: <unset>   0: <unset>
3797   1: abc   1: abc
3798  --->abcxyz  --->abcxyz
3799         ^         ^       )
3800   0: xyz   0: xyz
3801   1: abc   1: abc
3802    
3803  /(?C)abc/  /a(b+)(c*)(?C1)/I
3804    Capturing subpattern count = 2
3805    No options
3806    First char = 'a'
3807    Need char = 'b'
3808        abbbbbccc\C*1
3809    --->abbbbbccc
3810      1 ^        ^
3811    Callout data = 1
3812    No match
3813    
3814    /a(b+?)(c*?)(?C1)/I
3815    Capturing subpattern count = 2
3816    No options
3817    First char = 'a'
3818    Need char = 'b'
3819        abbbbbccc\C*1
3820    --->abbbbbccc
3821      1 ^ ^
3822    Callout data = 1
3823      1 ^  ^
3824    Callout data = 1
3825      1 ^   ^
3826    Callout data = 1
3827      1 ^    ^
3828    Callout data = 1
3829      1 ^     ^
3830    Callout data = 1
3831      1 ^      ^
3832    Callout data = 1
3833      1 ^       ^
3834    Callout data = 1
3835      1 ^        ^
3836    Callout data = 1
3837    No match
3838    
3839    /(?C)abc/I
3840  Capturing subpattern count = 0  Capturing subpattern count = 0
3841  No options  No options
3842  First char = 'a'  First char = 'a'
3843  Need char = 'c'  Need char = 'c'
3844    
3845  /(?C)^abc/  /(?C)^abc/I
3846  Capturing subpattern count = 0  Capturing subpattern count = 0
3847  Options: anchored  Options: anchored
3848  No first char  No first char
3849  No need char  No need char
3850    
3851  /(?C)a|b/S  /(?C)a|b/IS
3852  Capturing subpattern count = 0  Capturing subpattern count = 0
3853  No options  No options
3854  No first char  No first char
3855  No need char  No need char
3856  Study size = 40  Subject length lower bound = 1
3857  Starting character set: a b  Starting byte set: a b
3858    
3859  /(?R)/  /(?R)/I
3860  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3861    
3862  /(a|(?R))/  /(a|(?R))/I
3863  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3864    
3865  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3866  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3867    
3868  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3869  Capturing subpattern count = 3  Capturing subpattern count = 3
3870  No options  No options
3871  First char = 'x'  First char = 'x'
# Line 3783  No need char Line 3894  No need char
3894   3: xxab   3: xxab
3895      *** Failers      *** Failers
3896  No match  No match
3897      xyab      xyab
3898  No match  No match
3899    
3900  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3901  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3902    
3903  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3904  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3905    
3906  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3907  Capturing subpattern count = 1  Capturing subpattern count = 1
3908    May match empty string
3909  Options: anchored  Options: anchored
3910  No first char  No first char
3911  No need char  No need char
# Line 3803  No need char Line 3915  No need char
3915      a(b)c      a(b)c
3916   0: a(b)c   0: a(b)c
3917   1: c   1: c
3918      a(b(c))d      a(b(c))d
3919   0: a(b(c))d   0: a(b(c))d
3920   1: d   1: d
3921      *** Failers)      *** Failers)
3922  No match  No match
3923      a(b(c)d      a(b(c)d
3924  No match  No match
3925    
3926  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3927  Capturing subpattern count = 1  Capturing subpattern count = 1
3928  Options: anchored  Options: anchored
3929  No first char  No first char
# Line 3826  Need char = '<' Line 3938  Need char = '<'
3938   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3939   1: (1(2)3)   1: (1(2)3)
3940    
3941  /(a(?1)b)/D  /(a(?1)b)/DZ
3942  ------------------------------------------------------------------  ------------------------------------------------------------------
3943    0  18 Bra 0          Bra
3944    3  12 Bra 1          CBra 1
3945    6   1 a          a
3946    9   3 Recurse          Recurse
3947   12   1 b          b
3948   15  12 Ket          Ket
3949   18  18 Ket          Ket
3950   21     End          End
3951  ------------------------------------------------------------------  ------------------------------------------------------------------
3952  Capturing subpattern count = 1  Capturing subpattern count = 1
3953  No options  No options
3954  First char = 'a'  First char = 'a'
3955  Need char = 'b'  Need char = 'b'
3956    
3957  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3958  ------------------------------------------------------------------  ------------------------------------------------------------------
3959    0  24 Bra 0          Bra
3960    3  18 Bra 1          CBra 1
3961    6   1 a          a
3962    9   6 Bra 0          Once
3963   12   3 Recurse          Recurse
3964   15   6 KetRmax          KetRmax
3965   18   1 b          b
3966   21  18 Ket          Ket
3967   24  24 Ket          Ket
3968   27     End          End
3969  ------------------------------------------------------------------  ------------------------------------------------------------------
3970  Capturing subpattern count = 1  Capturing subpattern count = 1
3971  No options  No options
3972  First char = 'a'  First char = 'a'
3973  Need char = 'b'  Need char = 'b'
3974    
3975  /^\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  
 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))$/  
3976  Capturing subpattern count = 2  Capturing subpattern count = 2
3977  Options: anchored  Options: anchored
3978  No first char  No first char
# Line 3912  No need char Line 3991  No need char
3991  No match  No match
3992      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3993  No match  No match
3994    
3995  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3996  Capturing subpattern count = 2  Capturing subpattern count = 2
3997  Options: anchored  Options: anchored
3998  No first char  No first char
# Line 3922  No need char Line 4001  No need char
4001   0: xyz   0: xyz
4002   1: xyz   1: xyz
4003   2: y   2: y
4004      xxyzxyzz      xxyzxyzz
4005   0: xxyzxyzz   0: xxyzxyzz
4006   1: xxyzxyzz   1: xxyzxyzz
4007   2: xyzxyz   2: xyzxyz
# Line 3930  No need char Line 4009  No need char
4009  No match  No match
4010      xxyzz      xxyzz
4011  No match  No match
4012      xxyzxyzxyzz      xxyzxyzxyzz
4013  No match  No match
4014    
4015  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4016  Capturing subpattern count = 2  Capturing subpattern count = 2
4017  Options: extended  Options: extended
4018  First char = '<'  First char = '<'
# Line 3954  Need char = '>' Line 4033  Need char = '>'
4033   0: <def>   0: <def>
4034   1: <def>   1: <def>
4035   2: <def>   2: <def>
4036      <abc<>def>      <abc<>def>
4037   0: <abc<>def>   0: <abc<>def>
4038   1: <abc<>def>   1: <abc<>def>
4039   2: <abc<>def>   2: <abc<>def>
4040      <abc<>      <abc<>
4041   0: <>   0: <>
4042   1: <>   1: <>
4043   2: <>   2: <>
# Line 3967  No match Line 4046  No match
4046      <abc      <abc
4047  No match  No match
4048    
4049  /(?1)/  /(?1)/I
4050  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4051    
4052  /((?2)(abc)/  /((?2)(abc)/I
4053  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4054    
4055  /^(abc)def(?1)/  /^(abc)def(?1)/I
4056  Capturing subpattern count = 1  Capturing subpattern count = 1
4057  Options: anchored  Options: anchored
4058  No first char  No first char
# Line 3982  No need char Line 4061  No need char
4061   0: abcdefabc   0: abcdefabc
4062   1: abc   1: abc