/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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