/[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 453 by ph10, Fri Sep 18 19:12:35 2009 UTC revision 604 by ph10, Thu Jun 2 19:04:54 2011 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug. --/
7    
8  /-- Originally, the Perl 5.10 things were in here too, but now I have separated  /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9      many (most?) of them out into test 11. However, there may still be some      separated many (most?) of them out into test 11. However, there may still
10      that were overlooked. --/      be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 145  Capturing subpattern count = 0 Line 175  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
# Line 156  Capturing subpattern count = 0 Line 187  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
# Line 167  Capturing subpattern count = 0 Line 199  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 174  Capturing subpattern count = 1 Line 207  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  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
212    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 194  Capturing subpattern count = 1 Line 228  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 527  Capturing subpattern count = 0 Line 562  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565    Subject length lower bound = 1
566  Starting byte set: a b c d  Starting byte set: a b c d
567    
568  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 534  Capturing subpattern count = 0 Line 570  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573    Subject length lower bound = 1
574  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 541  Capturing subpattern count = 1 Line 578  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581    Subject length lower bound = 1
582  Starting byte set: b c x y  Starting byte set: b c x y
583    
584  /(^a|^b)/Im  /(^a|^b)/Im
# Line 594  Need char = 'h' (caseless) Line 632  Need char = 'h' (caseless)
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633          Bra          Bra
634          CBra 1          CBra 1
635       01 Opt       /i b
      NC b  
636          Ket          Ket
      00 Opt  
637          Ket          Ket
638          End          End
639  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 605  Capturing subpattern count = 1 Line 641  Capturing subpattern count = 1
641  No options  No options
642  First char = 'b' (caseless)  First char = 'b' (caseless)
643  No need char  No need char
644  Study returned NULL  Subject length lower bound = 1
645    No set of starting bytes
646    
647  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
648  Capturing subpattern count = 1  Capturing subpattern count = 1
649  No options  No options
650  No first char  No first char
651  No need char  No need char
652    Subject length lower bound = 1
653  Starting byte set: C a b c d  Starting byte set: C a b c d
654    
655  /a$/I  /a$/I
# Line 676  Capturing subpattern count = 0 Line 714  Capturing subpattern count = 0
714  No options  No options
715  No first char  No first char
716  No need char  No need char
717    Subject length lower bound = 1
718  Starting byte set: a b  Starting byte set: a b
719    
720  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 683  Capturing subpattern count = 1 Line 722  Capturing subpattern count = 1
722  No options  No options
723  No first char  No first char
724  Need char = 'a'  Need char = 'a'
725    Subject length lower bound = 5
726  Starting byte set: a o  Starting byte set: a o
727    
728  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 690  Capturing subpattern count = 0 Line 730  Capturing subpattern count = 0
730  No options  No options
731  No first char  No first char
732  No need char  No need char
733    Subject length lower bound = 1
734  Starting byte set: a b  Starting byte set: a b
735    
736  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 844  No match Line 885  No match
885      a      a
886  No match  No match
887    
888  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
889  Capturing subpattern count = 0  Capturing subpattern count = 0
890  No options  No options
891  First char = 'T'  First char = 'T'
# Line 856  Max back reference = 1 Line 897  Max back reference = 1
897  Options: anchored  Options: anchored
898  No first char  No first char
899  No need char  No need char
900        aaaa
901    No match
902      aaaaaa      aaaaaa
903   0: aaaaaa  No match
904   1: aa  
905    /Perl does not fail these two for the final subjects. Neither did PCRE until/
906    /release 8.01. The problem is in backtracking into a subpattern that contains/
907    No match
908    /a recursive reference to itself. PCRE has now made these into atomic patterns./
909    No match
910    
911    /^(xa|=?\1a){2}$/
912        xa=xaa
913     0: xa=xaa
914     1: =xaa
915        ** Failers
916    No match
917        xa=xaaa
918    No match
919    
920    /^(xa|=?\1a)+$/
921        xa=xaa
922     0: xa=xaa
923     1: =xaa
924        ** Failers
925    No match
926        xa=xaaa
927    No match
928    
929  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
930  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1179  No need char Line 1245  No need char
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246          Bra          Bra
1247          Bra          Bra
      04 Opt  
1248          AllAny*          AllAny*
1249          X          X
1250          Alt          Alt
      04 Opt  
1251          ^          ^
1252          B          B
1253          Ket          Ket
      00 Opt  
1254          Ket          Ket
1255          End          End
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1658  Capturing subpattern count = 0 Line 1721  Capturing subpattern count = 0
1721  Options: anchored  Options: anchored
1722  No first char  No first char
1723  Need char = 'd'  Need char = 'd'
1724  Study returned NULL  Subject length lower bound = 4
1725    No set of starting bytes
1726    
1727  /\(             # ( at start  /\(             # ( at start
1728    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1890  Capturing subpattern count = 0 Line 1954  Capturing subpattern count = 0
1954  No options  No options
1955  No first char  No first char
1956  No need char  No need char
1957    Subject length lower bound = 1
1958  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  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
1959    _ 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    _ 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
1960    
# Line 1951  Contains explicit CR or LF match Line 2016  Contains explicit CR or LF match
2016  No options  No options
2017  No first char  No first char
2018  No need char  No need char
2019    Subject length lower bound = 1
2020  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2021    
2022  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2693  No need char Line 2759  No need char
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760          Bra          Bra
2761          a          a
2762       01 Opt       /i b
      NC b  
2763          Ket          Ket
2764          End          End
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2716  No match Line 2781  No match
2781          Bra          Bra
2782          CBra 1          CBra 1
2783          a          a
2784       01 Opt       /i b
      NC b  
2785          Ket          Ket
      00 Opt  
2786          Ket          Ket
2787          End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2741  No match Line 2804  No match
2804  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806          Bra          Bra
2807       NC abc       /i abc
2808          Ket          Ket
2809          End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2754  Need char = 'c' (caseless) Line 2817  Need char = 'c' (caseless)
2817    (?i)abc/IxDZ    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819          Bra          Bra
2820       NC abc       /i abc
2821          Ket          Ket
2822          End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2927  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3157  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  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
3219    
3220  /\l/I  /\l/I
3221  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
3222    
3223  /\L/I  /\L/I
3224  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
3225    
3226  /\N{name}/I  /\N{name}/I
3227  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
3228    
3229  /\u/I  /\u/I
3230  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
3231    
3232  /\U/I  /\U/I
3233  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
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3421  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  No need char  No need char
3485    Subject length lower bound = 1
3486  Starting byte set: a b  Starting byte set: a b
3487    
3488  /[^a]/I  /[^a]/I
# Line 3440  Capturing subpattern count = 0 Line 3502  Capturing subpattern count = 0
3502  No options  No options
3503  No first char  No first char
3504  Need char = '6'  Need char = '6'
3505    Subject length lower bound = 4
3506  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
3507    
3508  /a^b/I  /a^b/I
# Line 3473  Capturing subpattern count = 0 Line 3536  Capturing subpattern count = 0
3536  Options: caseless  Options: caseless
3537  No first char  No first char
3538  No need char  No need char
3539    Subject length lower bound = 1
3540  Starting byte set: A B a b  Starting byte set: A B a b
3541    
3542  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3480  Capturing subpattern count = 0 Line 3544  Capturing subpattern count = 0
3544  No options  No options
3545  No first char  No first char
3546  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3547    Subject length lower bound = 3
3548  Starting byte set: a b  Starting byte set: a b
3549    
3550  /abc(?C)def/I  /abc(?C)def/I
# Line 3830  Capturing subpattern count = 0 Line 3895  Capturing subpattern count = 0
3895  No options  No options
3896  No first char  No first char
3897  No need char  No need char
3898    Subject length lower bound = 1
3899  Starting byte set: a b  Starting byte set: a b
3900    
3901  /(?R)/I  /(?R)/I
# Line 4614  Capturing subpattern count = 3 Line 4680  Capturing subpattern count = 3
4680  Options: caseless  Options: caseless
4681  No first char  No first char
4682  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4683  Study returned NULL  Subject length lower bound = 8
4684    No set of starting bytes
4685       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4686   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4687   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4632  Capturing subpattern count = 0 Line 4699  Capturing subpattern count = 0
4699  No options  No options
4700  No first char  No first char
4701  Need char = 'b'  Need char = 'b'
4702  Study returned NULL  Subject length lower bound = 1
4703    No set of starting bytes
4704    
4705  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4706  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4652  Capturing subpattern count = 1 Line 4720  Capturing subpattern count = 1
4720  No options  No options
4721  No first char  No first char
4722  Need char = 'c'  Need char = 'c'
4723  Study returned NULL  Subject length lower bound = 1
4724    No set of starting bytes
4725    
4726  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4727  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 5435  Capturing subpattern count = 1 Line 5504  Capturing subpattern count = 1
5504  No options  No options
5505  No first char  No first char
5506  No need char  No need char
5507    Subject length lower bound = 1
5508  Starting byte set: a b  Starting byte set: a b
5509  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5510  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5455  Capturing subpattern count = 1 Line 5525  Capturing subpattern count = 1
5525  No options  No options
5526  No first char  No first char
5527  No need char  No need char
5528    Subject length lower bound = 1
5529  Starting byte set: a b  Starting byte set: a b
5530  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5531  Study data written to testsavedregex  Study data written to testsavedregex
# Line 6167  Capturing subpattern count = 0 Line 6238  Capturing subpattern count = 0
6238  No options  No options
6239  No first char  No first char
6240  Need char = ','  Need char = ','
6241    Subject length lower bound = 1
6242  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6243      \x0b,\x0b      \x0b,\x0b
6244   0: ,   0: ,
# Line 6471  Capturing subpattern count = 1 Line 6543  Capturing subpattern count = 1
6543  No options  No options
6544  No first char  No first char
6545  No need char  No need char
6546    Subject length lower bound = 1
6547  Starting byte set: C a b c d  Starting byte set: C a b c d
6548    
6549  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6478  Capturing subpattern count = 1 Line 6551  Capturing subpattern count = 1
6551  No options  No options
6552  No first char  No first char
6553  Need char = 'z'  Need char = 'z'
6554    Subject length lower bound = 4
6555  Starting byte set: a b  Starting byte set: a b
6556    
6557  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6485  Capturing subpattern count = 1 Line 6559  Capturing subpattern count = 1
6559  No options  No options
6560  No first char  No first char
6561  Need char = 'z'  Need char = 'z'
6562    Subject length lower bound = 4
6563  Starting byte set: a b  Starting byte set: a b
6564    
6565  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6492  Capturing subpattern count = 1 Line 6567  Capturing subpattern count = 1
6567  No options  No options
6568  No first char  No first char
6569  Need char = 'z'  Need char = 'z'
6570    Subject length lower bound = 4
6571  Starting byte set: a b c  Starting byte set: a b c
6572    
6573  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6499  Capturing subpattern count = 1 Line 6575  Capturing subpattern count = 1
6575  No options  No options
6576  No first char  No first char
6577  Need char = 'z'  Need char = 'z'
6578    Subject length lower bound = 4
6579  Starting byte set: a b c  Starting byte set: a b c
6580    
6581  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6506  Capturing subpattern count = 1 Line 6583  Capturing subpattern count = 1
6583  No options  No options
6584  No first char  No first char
6585  Need char = 'z'  Need char = 'z'
6586    Subject length lower bound = 4
6587  Starting byte set: a b c d  Starting byte set: a b c d
6588    
6589  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6513  Capturing subpattern count = 1 Line 6591  Capturing subpattern count = 1
6591  No options  No options
6592  No first char  No first char
6593  Need char = 'z'  Need char = 'z'
6594    Subject length lower bound = 4
6595  Starting byte set: a b c d  Starting byte set: a b c d
6596    
6597  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6585  No match Line 6664  No match
6664  ------------------------------------------------------------------  ------------------------------------------------------------------
6665          Bra          Bra
6666          ^          ^
6667          a*       /i a*
6668       NC A       /i A
6669          \d          \d
6670          Ket          Ket
6671          End          End
# Line 6605  Capturing subpattern count = 1 Line 6684  Capturing subpattern count = 1
6684  No options  No options
6685  No first char  No first char
6686  No need char  No need char
6687    Subject length lower bound = 1
6688  Starting byte set: a b c d  Starting byte set: a b c d
6689    
6690  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6612  Capturing subpattern count = 1 Line 6692  Capturing subpattern count = 1
6692  No options  No options
6693  No first char  No first char
6694  No need char  No need char
6695    Subject length lower bound = 1
6696  Starting byte set: a b c d  Starting byte set: a b c d
6697    
6698  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6619  Capturing subpattern count = 1 Line 6700  Capturing subpattern count = 1
6700  No options  No options
6701  No first char  No first char
6702  No need char  No need char
6703    Subject length lower bound = 1
6704  Starting byte set: a b c d  Starting byte set: a b c d
6705    
6706  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6626  Capturing subpattern count = 1 Line 6708  Capturing subpattern count = 1
6708  No options  No options
6709  No first char  No first char
6710  No need char  No need char
6711    Subject length lower bound = 2
6712  Starting byte set: a b  Starting byte set: a b
6713    
6714  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7210  Matched, but too many substrings Line 7293  Matched, but too many substrings
7293  /[^a]+a/BZi  /[^a]+a/BZi
7294  ------------------------------------------------------------------  ------------------------------------------------------------------
7295          Bra          Bra
7296          [^A]++       /i [^A]++
7297       NC a       /i a
7298          Ket          Ket
7299          End          End
7300  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7219  Matched, but too many substrings Line 7302  Matched, but too many substrings
7302  /[^a]+A/BZi  /[^a]+A/BZi
7303  ------------------------------------------------------------------  ------------------------------------------------------------------
7304          Bra          Bra
7305          [^A]++       /i [^A]++
7306       NC A       /i A
7307          Ket          Ket
7308          End          End
7309  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7431  No match Line 7514  No match
7514          ^          ^
7515          CBra 1          CBra 1
7516          Cond          Cond
7517        2 Cond ref        2 Cond nref
7518          y          y
7519          Ket          Ket
7520          [()]          [()]
# Line 8604  No match Line 8687  No match
8687  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8688  No match  No match
8689    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8690  /a(*MARK)b/  /a(*MARK)b/
8691  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8692    
8693  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8694  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8697  No match Line 8777  No match
8777  No match  No match
8778      a\x85b      a\x85b
8779  No match  No match
8780    
8781    /(*ANY).*/g
8782        abc\r\ndef
8783     0: abc
8784     0:
8785     0: def
8786     0:
8787    
8788    /(*ANYCRLF).*/g
8789        abc\r\ndef
8790     0: abc
8791     0:
8792     0: def
8793     0:
8794    
8795    /(*CRLF).*/g
8796        abc\r\ndef
8797     0: abc
8798     0:
8799     0: def
8800     0:
8801    
8802  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8803  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9069  Capturing subpattern count = 1 Line 9170  Capturing subpattern count = 1
9170  No options  No options
9171  No first char  No first char
9172  No need char  No need char
9173    Subject length lower bound = 1
9174  Starting byte set: x y z  Starting byte set: x y z
9175    
9176  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9182  No match Line 9284  No match
9284   +0        ^     x   +0        ^     x
9285   +0         ^    x   +0         ^    x
9286  No match  No match
9287    
9288    /(*NO_START_OPT)xyz/C
9289      abcxyz
9290    --->abcxyz
9291    +15 ^          x
9292    +15  ^         x
9293    +15   ^        x
9294    +15    ^       x
9295    +16    ^^      y
9296    +17    ^ ^     z
9297    +18    ^  ^
9298     0: xyz
9299    
9300    /xyz/CY
9301      abcxyz
9302    --->abcxyz
9303     +0 ^          x
9304     +0  ^         x
9305     +0   ^        x
9306     +0    ^       x
9307     +1    ^^      y
9308     +2    ^ ^     z
9309     +3    ^  ^
9310     0: xyz
9311    
9312  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9313      "ab"      "ab"
# Line 9812  No match Line 9938  No match
9938   6: d   6: d
9939   7: Y   7: Y
9940    
9941    /(?<=b(?1)|zzz)(a)/
9942        xbaax
9943     0: a
9944     1: a
9945        xzzzax
9946     0: a
9947     1: a
9948    
9949    /(a)(?<=b\1)/
9950    Failed: lookbehind assertion is not fixed length at offset 10
9951    
9952    /(a)(?<=b+(?1))/
9953    Failed: lookbehind assertion is not fixed length at offset 13
9954    
9955    /(a+)(?<=b(?1))/
9956    Failed: lookbehind assertion is not fixed length at offset 14
9957    
9958    /(a(?<=b(?1)))/
9959    Failed: lookbehind assertion is not fixed length at offset 13
9960    
9961    /(?<=b(?1))xyz/
9962    Failed: reference to non-existent subpattern at offset 8
9963    
9964    /(?<=b(?1))xyz(b+)pqrstuvew/
9965    Failed: lookbehind assertion is not fixed length at offset 26
9966    
9967    /(a|bc)\1/SI
9968    Capturing subpattern count = 1
9969    Max back reference = 1
9970    No options
9971    No first char
9972    No need char
9973    Subject length lower bound = 2
9974    Starting byte set: a b
9975    
9976    /(a|bc)\1{2,3}/SI
9977    Capturing subpattern count = 1
9978    Max back reference = 1
9979    No options
9980    No first char
9981    No need char
9982    Subject length lower bound = 3
9983    Starting byte set: a b
9984    
9985    /(a|bc)(?1)/SI
9986    Capturing subpattern count = 1
9987    No options
9988    No first char
9989    No need char
9990    Subject length lower bound = 2
9991    Starting byte set: a b
9992    
9993    /(a|b\1)(a|b\1)/SI
9994    Capturing subpattern count = 2
9995    Max back reference = 1
9996    No options
9997    No first char
9998    No need char
9999    Subject length lower bound = 2
10000    Starting byte set: a b
10001    
10002    /(a|b\1){2}/SI
10003    Capturing subpattern count = 1
10004    Max back reference = 1
10005    No options
10006    No first char
10007    No need char
10008    Subject length lower bound = 2
10009    Starting byte set: a b
10010    
10011    /(a|bbbb\1)(a|bbbb\1)/SI
10012    Capturing subpattern count = 2
10013    Max back reference = 1
10014    No options
10015    No first char
10016    No need char
10017    Subject length lower bound = 2
10018    Starting byte set: a b
10019    
10020    /(a|bbbb\1){2}/SI
10021    Capturing subpattern count = 1
10022    Max back reference = 1
10023    No options
10024    No first char
10025    No need char
10026    Subject length lower bound = 2
10027    Starting byte set: a b
10028    
10029    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10030    Capturing subpattern count = 1
10031    Options: anchored
10032    No first char
10033    Need char = ':'
10034    Subject length lower bound = 22
10035    No set of starting bytes
10036    
10037    /  (?: [\040\t] |  \(
10038    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10039    \)  )*                          # optional leading comment
10040    (?:    (?:
10041    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10042    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10043    |
10044    " (?:                      # opening quote...
10045    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10046    |                     #    or
10047    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10048    )* "  # closing quote
10049    )                    # initial word
10050    (?:  (?: [\040\t] |  \(
10051    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10052    \)  )*  \.  (?: [\040\t] |  \(
10053    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10054    \)  )*   (?:
10055    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10056    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10057    |
10058    " (?:                      # opening quote...
10059    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10060    |                     #    or
10061    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10062    )* "  # closing quote
10063    )  )* # further okay, if led by a period
10064    (?: [\040\t] |  \(
10065    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10066    \)  )*  @  (?: [\040\t] |  \(
10067    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10068    \)  )*    (?:
10069    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10070    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10071    |   \[                         # [
10072    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10073    \]                        #           ]
10074    )                           # initial subdomain
10075    (?:                                  #
10076    (?: [\040\t] |  \(
10077    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10078    \)  )*  \.                        # if led by a period...
10079    (?: [\040\t] |  \(
10080    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10081    \)  )*   (?:
10082    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10083    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10084    |   \[                         # [
10085    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10086    \]                        #           ]
10087    )                     #   ...further okay
10088    )*
10089    # address
10090    |                     #  or
10091    (?:
10092    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10093    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10094    |
10095    " (?:                      # opening quote...
10096    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10097    |                     #    or
10098    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10099    )* "  # closing quote
10100    )             # one word, optionally followed by....
10101    (?:
10102    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10103    \(
10104    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10105    \)       |  # comments, or...
10106    
10107    " (?:                      # opening quote...
10108    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10109    |                     #    or
10110    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10111    )* "  # closing quote
10112    # quoted strings
10113    )*
10114    <  (?: [\040\t] |  \(
10115    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10116    \)  )*                     # leading <
10117    (?:  @  (?: [\040\t] |  \(
10118    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10119    \)  )*    (?:
10120    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10121    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10122    |   \[                         # [
10123    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10124    \]                        #           ]
10125    )                           # initial subdomain
10126    (?:                                  #
10127    (?: [\040\t] |  \(
10128    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10129    \)  )*  \.                        # if led by a period...
10130    (?: [\040\t] |  \(
10131    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10132    \)  )*   (?:
10133    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10134    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10135    |   \[                         # [
10136    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10137    \]                        #           ]
10138    )                     #   ...further okay
10139    )*
10140    
10141    (?:  (?: [\040\t] |  \(
10142    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10143    \)  )*  ,  (?: [\040\t] |  \(
10144    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10145    \)  )*  @  (?: [\040\t] |  \(
10146    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10147    \)  )*    (?:
10148    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10149    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10150    |   \[                         # [
10151    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10152    \]                        #           ]
10153    )                           # initial subdomain
10154    (?:                                  #
10155    (?: [\040\t] |  \(
10156    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10157    \)  )*  \.                        # if led by a period...
10158    (?: [\040\t] |  \(
10159    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10160    \)  )*   (?:
10161    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10162    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10163    |   \[                         # [
10164    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10165    \]                        #           ]
10166    )                     #   ...further okay
10167    )*
10168    )* # further okay, if led by comma
10169    :                                # closing colon
10170    (?: [\040\t] |  \(
10171    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10172    \)  )*  )? #       optional route
10173    (?:
10174    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10175    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10176    |
10177    " (?:                      # opening quote...
10178    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10179    |                     #    or
10180    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10181    )* "  # closing quote
10182    )                    # initial word
10183    (?:  (?: [\040\t] |  \(
10184    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10185    \)  )*  \.  (?: [\040\t] |  \(
10186    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10187    \)  )*   (?:
10188    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10189    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10190    |
10191    " (?:                      # opening quote...
10192    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10193    |                     #    or
10194    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10195    )* "  # closing quote
10196    )  )* # further okay, if led by a period
10197    (?: [\040\t] |  \(
10198    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10199    \)  )*  @  (?: [\040\t] |  \(
10200    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10201    \)  )*    (?:
10202    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10203    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10204    |   \[                         # [
10205    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10206    \]                        #           ]
10207    )                           # initial subdomain
10208    (?:                                  #
10209    (?: [\040\t] |  \(
10210    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10211    \)  )*  \.                        # if led by a period...
10212    (?: [\040\t] |  \(
10213    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10214    \)  )*   (?:
10215    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10216    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10217    |   \[                         # [
10218    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10219    \]                        #           ]
10220    )                     #   ...further okay
10221    )*
10222    #       address spec
10223    (?: [\040\t] |  \(
10224    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10225    \)  )*  > #                  trailing >
10226    # name and address
10227    )  (?: [\040\t] |  \(
10228    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10229    \)  )*                       # optional trailing comment
10230    /xSI
10231    Capturing subpattern count = 0
10232    Contains explicit CR or LF match
10233    Options: extended
10234    No first char
10235    No need char
10236    Subject length lower bound = 3
10237    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10238      9 = ? 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 ^ _ ` a b c d e
10239      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10240    
10241    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10242    Capturing subpattern count = 11
10243    Options: caseless dotall
10244    First char = '<'
10245    Need char = '>'
10246    Subject length lower bound = 47
10247    No set of starting bytes
10248    
10249    "(?>.*/)foo"SI
10250    Capturing subpattern count = 0
10251    No options
10252    First char at start or follows newline
10253    Need char = 'o'
10254    Subject length lower bound = 4
10255    No set of starting bytes
10256    
10257    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10258    Capturing subpattern count = 0
10259    Options: extended
10260    No first char
10261    Need char = '-'
10262    Subject length lower bound = 8
10263    No set of starting bytes
10264    
10265    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10266    Capturing subpattern count = 1
10267    Options: caseless
10268    No first char
10269    No need char
10270    Subject length lower bound = 1
10271    Starting byte set: A B C a b c
10272    
10273    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10274    Capturing subpattern count = 0
10275    No options
10276    No first char
10277    Need char = 'b'
10278    Subject length lower bound = 41
10279    Starting byte set: c d
10280    
10281    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10282     ([\"\'])?                       # find single or double quote
10283     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10284                                     # quote, otherwise match up to next space
10285    /isxSI
10286    Capturing subpattern count = 3
10287    Max back reference = 1
10288    Options: caseless extended dotall
10289    First char = '<'
10290    Need char = '='
10291    Subject length lower bound = 9
10292    No set of starting bytes
10293    
10294    /^(?!:)                       # colon disallowed at start
10295      (?:                         # start of item
10296        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10297        (?(1)0 | () ) )           # if null previously matched, fail; else null
10298        :                         # followed by colon
10299      ){1,7}                      # end item; 1-7 of them required
10300      [0-9a-f]{1,4} $             # final hex number at end of string
10301      (?(1)|.)                    # check that there was an empty component
10302      /xiIS
10303    Capturing subpattern count = 1
10304    Options: anchored caseless extended
10305    No first char
10306    Need char = ':'
10307    Subject length lower bound = 2
10308    No set of starting bytes
10309    
10310    /(?|(?<a>A)|(?<a>B))/I
10311    Capturing subpattern count = 1
10312    Named capturing subpatterns:
10313      a   1
10314      a   1
10315    No options
10316    No first char
10317    No need char
10318        AB\Ca
10319     0: A
10320     1: A
10321      C A (1) a
10322        BA\Ca
10323     0: B
10324     1: B
10325      C B (1) a
10326    
10327    /(?|(?<a>A)|(?<b>B))/
10328    Failed: different names for subpatterns of the same number are not allowed at offset 15
10329    
10330    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10331        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10332        (?('quote')[a-z]+|[0-9]+)/JIx
10333    Capturing subpattern count = 6
10334    Named capturing subpatterns:
10335      apostrophe   2
10336      apostrophe   5
10337      quote        1
10338      quote        4
10339      realquote    3
10340      realquote    6
10341    Options: extended dupnames
10342    No first char
10343    No need char
10344        a"aaaaa
10345     0: a"aaaaa
10346     1: "
10347     2: <unset>
10348     3: "
10349        b"aaaaa
10350     0: b"aaaaa
10351     1: <unset>
10352     2: <unset>
10353     3: <unset>
10354     4: "
10355     5: <unset>
10356     6: "
10357        ** Failers
10358    No match
10359        b"11111
10360    No match
10361        a"11111
10362    No match
10363    
10364    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10365    ------------------------------------------------------------------
10366            Bra
10367            ^
10368            Bra
10369            CBra 1
10370            a
10371            Ket
10372            CBra 2
10373            b
10374            Ket
10375            CBra 3
10376            c
10377            Ket
10378            CBra 4
10379            d
10380            Ket
10381            Alt
10382            CBra 1
10383            e
10384            Ket
10385            Ket
10386            Cond
10387          4 Cond nref
10388            X
10389            Alt
10390            Y
10391            Ket
10392            Ket
10393            End
10394    ------------------------------------------------------------------
10395    Capturing subpattern count = 4
10396    Named capturing subpatterns:
10397      D   4
10398      D   1
10399    Options: anchored extended dupnames
10400    No first char
10401    No need char
10402        abcdX
10403     0: abcdX
10404     1: a
10405     2: b
10406     3: c
10407     4: d
10408        eX
10409     0: eX
10410     1: e
10411        ** Failers
10412    No match
10413        abcdY
10414    No match
10415        ey
10416    No match
10417    
10418    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10419    ------------------------------------------------------------------
10420            Bra
10421            CBra 1
10422            a
10423            Ket
10424            CBra 2
10425            b
10426            Ket
10427            CBra 3
10428            c
10429            Ket
10430            CBra 4
10431            d
10432            Cond
10433            Cond nrecurse 1
10434            $
10435            Alt
10436            Once
10437            Recurse
10438            Ket
10439            Ket
10440            Ket
10441            Ket
10442            End
10443    ------------------------------------------------------------------
10444    Capturing subpattern count = 4
10445    Named capturing subpatterns:
10446      A   1
10447      A   4
10448    Options: extended dupnames
10449    First char = 'a'
10450    Need char = 'd'
10451        abcdd
10452     0: abcdd
10453     1: a
10454     2: b
10455     3: c
10456     4: dd
10457        ** Failers
10458    No match
10459        abcdde
10460    No match
10461    
10462    /abcd*/
10463        xxxxabcd\P
10464     0: abcd
10465        xxxxabcd\P\P
10466    Partial match: abcd
10467    
10468    /abcd*/i
10469        xxxxabcd\P
10470     0: abcd
10471        xxxxabcd\P\P
10472    Partial match: abcd
10473        XXXXABCD\P
10474     0: ABCD
10475        XXXXABCD\P\P
10476    Partial match: ABCD
10477    
10478    /abc\d*/
10479        xxxxabc1\P
10480     0: abc1
10481        xxxxabc1\P\P
10482    Partial match: abc1
10483    
10484    /(a)bc\1*/
10485        xxxxabca\P
10486     0: abca
10487     1: a
10488        xxxxabca\P\P
10489    Partial match: abca
10490    
10491    /abc[de]*/
10492        xxxxabcde\P
10493     0: abcde
10494        xxxxabcde\P\P
10495    Partial match: abcde
10496    
10497    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10498        broken and not behaving as specified in that it *does* bumpalong after
10499        hitting (*COMMIT). --/
10500    
10501    /(?1)(A(*COMMIT)|B)D/
10502        ABD
10503     0: ABD
10504     1: B
10505        XABD
10506     0: ABD
10507     1: B
10508        BAD
10509     0: BAD
10510     1: A
10511        ABXABD
10512     0: ABD
10513     1: B
10514        ** Failers
10515    No match
10516        ABX
10517    No match
10518        BAXBAD
10519    No match
10520    
10521    /(\3)(\1)(a)/<JS>
10522        cat
10523     0: a
10524     1:
10525     2:
10526     3: a
10527    
10528    /(\3)(\1)(a)/SI<JS>
10529    Capturing subpattern count = 3
10530    Max back reference = 3
10531    Options:
10532    No first char
10533    Need char = 'a'
10534    Subject length lower bound = 1
10535    No set of starting bytes
10536        cat
10537     0: a
10538     1:
10539     2:
10540     3: a
10541    
10542    /(\3)(\1)(a)/SI
10543    Capturing subpattern count = 3
10544    Max back reference = 3
10545    No options
10546    No first char
10547    Need char = 'a'
10548    Subject length lower bound = 3
10549    No set of starting bytes
10550        cat
10551    No match
10552    
10553    /i(?(DEFINE)(?<s>a))/SI
10554    Capturing subpattern count = 1
10555    Named capturing subpatterns:
10556      s   1
10557    No options
10558    First char = 'i'
10559    No need char
10560    Subject length lower bound = 1
10561    No set of starting bytes
10562        i
10563     0: i
10564    
10565    /()i(?(1)a)/SI
10566    Capturing subpattern count = 1
10567    No options
10568    No first char
10569    Need char = 'i'
10570    Subject length lower bound = 1
10571    Starting byte set: i
10572        ia
10573     0: ia
10574     1:
10575    
10576    /(?i)a(?-i)b|c/BZ
10577    ------------------------------------------------------------------
10578            Bra
10579         /i a
10580            b
10581            Alt
10582            c
10583            Ket
10584            End
10585    ------------------------------------------------------------------
10586        XabX
10587     0: ab
10588        XAbX
10589     0: Ab
10590        CcC
10591     0: c
10592        ** Failers
10593    No match
10594        XABX
10595    No match
10596    
10597    /(?i)a(?s)b|c/BZ
10598    ------------------------------------------------------------------
10599            Bra
10600         /i ab
10601            Alt
10602         /i c
10603            Ket
10604            End
10605    ------------------------------------------------------------------
10606    
10607    /(?i)a(?s-i)b|c/BZ
10608    ------------------------------------------------------------------
10609            Bra
10610         /i a
10611            b
10612            Alt
10613            c
10614            Ket
10615            End
10616    ------------------------------------------------------------------
10617    
10618    /^(ab(c\1)d|x){2}$/BZ
10619    ------------------------------------------------------------------
10620            Bra
10621            ^
10622            Once
10623            CBra 1
10624            ab
10625            CBra 2
10626            c
10627            \1
10628            Ket
10629            d
10630            Alt
10631            x
10632            Ket
10633            Ket
10634            Once
10635            CBra 1
10636            ab
10637            CBra 2
10638            c
10639            \1
10640            Ket
10641            d
10642            Alt
10643            x
10644            Ket
10645            Ket
10646            $
10647            Ket
10648            End
10649    ------------------------------------------------------------------
10650        xabcxd
10651     0: xabcxd
10652     1: abcxd
10653     2: cx
10654    
10655    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10656    ------------------------------------------------------------------
10657            Bra
10658            ^
10659            Once
10660            Brazero
10661            Once
10662            Recurse
10663            KetRmax
10664            Ket
10665            Cond
10666            Cond def
10667            CBra 1
10668            Any
10669            Ket
10670            Ket
10671            $
10672            Ket
10673            End
10674    ------------------------------------------------------------------
10675    
10676    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10677    ------------------------------------------------------------------
10678            Bra
10679            ^
10680            Brazero
10681            Once
10682            Recurse
10683            KetRmax
10684            Cond
10685            Cond def
10686            CBra 1
10687            Any
10688            Ket
10689            Ket
10690            $
10691            Ket
10692            End
10693    ------------------------------------------------------------------
10694    
10695    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10696         documents that the use of \K in assertions is "not well defined". The
10697         last is here because Perl gives the match as "b" rather than "ab". I
10698         believe this to be a Perl bug. --/
10699    
10700    /(?=a\Kb)ab/
10701        ab
10702     0: b
10703    
10704    /(?!a\Kb)ac/
10705        ac
10706     0: ac
10707    
10708    /^abc(?<=b\Kc)d/
10709        abcd
10710     0: cd
10711    
10712    /^abc(?<!b\Kq)d/
10713        abcd
10714     0: abcd
10715    
10716    /(?>a\Kb)z|(ab)/
10717        ab
10718     0: ab
10719     1: ab
10720    
10721    /----------------------/
10722    
10723    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10724    Failed: recursive call could loop indefinitely at offset 31
10725    
10726    /abc(*MARK:)pqr/
10727    Failed: (*MARK) must have an argument at offset 10
10728    
10729    /abc(*:)pqr/
10730    Failed: (*MARK) must have an argument at offset 6
10731    
10732    /abc(*FAIL:123)xyz/
10733    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10734    
10735    /--- This should, and does, fail. In Perl, it does not, which I think is a
10736         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10737    
10738    /A(*COMMIT)B/+K
10739        ACABX
10740    No match
10741    
10742    /--- These should be different, but in Perl 5.11 are not, which I think
10743         is a bug in Perl. ---/
10744    
10745    /A(*THEN)B|A(*THEN)C/K
10746        AC
10747     0: AC
10748    
10749    /A(*PRUNE)B|A(*PRUNE)C/K
10750        AC
10751    No match
10752    
10753    /--- A whole lot of tests of verbs with arguments are here rather than in test
10754         11 because Perl doesn't seem to follow its specification entirely
10755         correctly. ---/
10756    
10757    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10758         not clear how Perl defines "involved in the failure of the match". ---/
10759    
10760    /^(A(*THEN:A)B|C(*THEN:B)D)/K
10761        AB
10762     0: AB
10763     1: AB
10764        CD
10765     0: CD
10766     1: CD
10767        ** Failers
10768    No match
10769        AC
10770    No match
10771        CB
10772    No match, mark = B
10773    
10774    /--- Check the use of names for success and failure. PCRE doesn't show these
10775    names for success, though Perl does, contrary to its spec. ---/
10776    
10777    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
10778        AB
10779     0: AB
10780     1: AB
10781        CD
10782     0: CD
10783     1: CD
10784        ** Failers
10785    No match
10786        AC
10787    No match, mark = A
10788        CB
10789    No match, mark = B
10790    
10791    /--- An empty name does not pass back an empty string. It is the same as if no
10792    name were given. ---/
10793    
10794    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
10795        AB
10796     0: AB
10797     1: AB
10798        CD
10799     0: CD
10800     1: CD
10801    
10802    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
10803    
10804    /A(*PRUNE:A)B/K
10805        ACAB
10806     0: AB
10807    
10808    /(*MARK:A)(*PRUNE:B)(C|X)/K
10809        C
10810     0: C
10811     1: C
10812    MK: A
10813        D
10814    No match, mark = B
10815    
10816    /(*MARK:A)(*THEN:B)(C|X)/K
10817        C
10818     0: C
10819     1: C
10820    MK: A
10821        D
10822    No match, mark = B
10823    
10824    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
10825    
10826    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
10827        AAAC
10828    No match
10829    
10830    /--- Same --/
10831    
10832    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
10833        AAAC
10834    No match
10835    
10836    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10837         PRUNE kills it. ---/
10838    
10839    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10840        AAAC
10841    No match
10842    
10843    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
10844        AAAC
10845    No match
10846    
10847    /--- This should fail, as a null name is the same as no name ---/
10848    
10849    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
10850        AAAC
10851    No match
10852    
10853    /--- This fails in PCRE, and I think that is in accordance with Perl's
10854         documentation, though in Perl it succeeds. ---/
10855    
10856    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
10857        AAAC
10858    No match
10859    
10860    /--- Mark names can be duplicated ---/
10861    
10862    /A(*:A)B|X(*:A)Y/K
10863        AABC
10864     0: AB
10865    MK: A
10866        XXYZ
10867     0: XY
10868    MK: A
10869    
10870    /^A(*:A)B|^X(*:A)Y/K
10871        ** Failers
10872    No match
10873        XAQQ
10874    No match, mark = A
10875    
10876    /--- A check on what happens after hitting a mark and them bumping along to
10877    something that does not even start. Perl reports tags after the failures here,
10878    though it does not when the individual letters are made into something
10879    more complicated. ---/
10880    
10881    /A(*:A)B|XX(*:B)Y/K
10882        AABC
10883     0: AB
10884    MK: A
10885        XXYZ
10886     0: XXY
10887    MK: B
10888        ** Failers
10889    No match
10890        XAQQ
10891    No match
10892        XAQQXZZ
10893    No match
10894        AXQQQ
10895    No match
10896        AXXQQQ
10897    No match
10898    
10899    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10900    optimizations defeat this. So does the PCRE optimization unless we disable it
10901    with \Y. ---/
10902    
10903    /(*COMMIT)ABC/
10904        ABCDEFG
10905     0: ABC
10906        ** Failers
10907    No match
10908        DEFGABC\Y
10909    No match
10910    
10911    /--- Repeat some tests with added studying. ---/
10912    
10913    /A(*COMMIT)B/+KS
10914        ACABX
10915    No match
10916    
10917    /A(*THEN)B|A(*THEN)C/KS
10918        AC
10919     0: AC
10920    
10921    /A(*PRUNE)B|A(*PRUNE)C/KS
10922        AC
10923    No match
10924    
10925    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
10926        AB
10927     0: AB
10928     1: AB
10929        CD
10930     0: CD
10931     1: CD
10932        ** Failers
10933    No match
10934        AC
10935    No match
10936        CB
10937    No match, mark = B
10938    
10939    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
10940        AB
10941     0: AB
10942     1: AB
10943        CD
10944     0: CD
10945     1: CD
10946        ** Failers
10947    No match
10948        AC
10949    No match, mark = A
10950        CB
10951    No match, mark = B
10952    
10953    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
10954        AB
10955     0: AB
10956     1: AB
10957        CD
10958     0: CD
10959     1: CD
10960    
10961    /A(*PRUNE:A)B/KS
10962        ACAB
10963     0: AB
10964    
10965    /(*MARK:A)(*PRUNE:B)(C|X)/KS
10966        C
10967     0: C
10968     1: C
10969    MK: A
10970        D
10971    No match
10972    
10973    /(*MARK:A)(*THEN:B)(C|X)/KS
10974        C
10975     0: C
10976     1: C
10977    MK: A
10978        D
10979    No match
10980    
10981    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
10982        AAAC
10983    No match
10984    
10985    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
10986        AAAC
10987    No match
10988    
10989    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
10990        AAAC
10991    No match
10992    
10993    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
10994        AAAC
10995    No match
10996    
10997    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
10998        AAAC
10999    No match
11000    
11001    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11002        AAAC
11003    No match
11004    
11005    /A(*:A)B|XX(*:B)Y/KS
11006        AABC
11007     0: AB
11008    MK: A
11009        XXYZ
11010     0: XXY
11011    MK: B
11012        ** Failers
11013    No match
11014        XAQQ
11015    No match
11016        XAQQXZZ
11017    No match
11018        AXQQQ
11019    No match
11020        AXXQQQ
11021    No match
11022    
11023    /(*COMMIT)ABC/
11024        ABCDEFG
11025     0: ABC
11026        ** Failers
11027    No match
11028        DEFGABC\Y
11029    No match
11030    
11031    /^(ab (c+(*THEN)cd) | xyz)/x
11032        abcccd
11033    No match
11034    
11035    /^(ab (c+(*PRUNE)cd) | xyz)/x
11036        abcccd
11037    No match
11038    
11039    /^(ab (c+(*FAIL)cd) | xyz)/x
11040        abcccd
11041    No match
11042    
11043    /--- Perl 5.11 gets some of these wrong ---/
11044    
11045    /(?>.(*ACCEPT))*?5/
11046        abcde
11047     0: a
11048    
11049    /(.(*ACCEPT))*?5/
11050        abcde
11051     0: a
11052     1: a
11053    
11054    /(.(*ACCEPT))5/
11055        abcde
11056     0: a
11057     1: a
11058    
11059    /(.(*ACCEPT))*5/
11060        abcde
11061     0: a
11062     1: a
11063    
11064    /A\NB./BZ
11065    ------------------------------------------------------------------
11066            Bra
11067            A
11068            Any
11069            B
11070            Any
11071            Ket
11072            End
11073    ------------------------------------------------------------------
11074        ACBD
11075     0: ACBD
11076        *** Failers
11077    No match
11078        A\nB
11079    No match
11080        ACB\n
11081    No match
11082    
11083    /A\NB./sBZ
11084    ------------------------------------------------------------------
11085            Bra
11086            A
11087            Any
11088            B
11089            AllAny
11090            Ket
11091            End
11092    ------------------------------------------------------------------
11093        ACBD
11094     0: ACBD
11095        ACB\n
11096     0: ACB\x0a
11097        *** Failers
11098    No match
11099        A\nB
11100    No match
11101    
11102    /A\NB/<crlf>
11103        A\nB
11104     0: A\x0aB
11105        A\rB
11106     0: A\x0dB
11107        ** Failers
11108    No match
11109        A\r\nB
11110    No match
11111    
11112    /\R+b/BZ
11113    ------------------------------------------------------------------
11114            Bra
11115            \R++
11116            b
11117            Ket
11118            End
11119    ------------------------------------------------------------------
11120    
11121    /\R+\n/BZ
11122    ------------------------------------------------------------------
11123            Bra
11124            \R+
11125            \x0a
11126            Ket
11127            End
11128    ------------------------------------------------------------------
11129    
11130    /\R+\d/BZ
11131    ------------------------------------------------------------------
11132            Bra
11133            \R++
11134            \d
11135            Ket
11136            End
11137    ------------------------------------------------------------------
11138    
11139    /\d*\R/BZ
11140    ------------------------------------------------------------------
11141            Bra
11142            \d*+
11143            \R
11144            Ket
11145            End
11146    ------------------------------------------------------------------
11147    
11148    /\s*\R/BZ
11149    ------------------------------------------------------------------
11150            Bra
11151            \s*+
11152            \R
11153            Ket
11154            End
11155    ------------------------------------------------------------------
11156    
11157    /-- Perl treats this one differently, not failing the second string. I believe
11158        that is a bug in Perl. --/
11159    
11160    /^((abc|abcx)(*THEN)y|abcd)/
11161        abcd
11162     0: abcd
11163     1: abcd
11164        *** Failers
11165    No match
11166        abcxy
11167    No match
11168    
11169    /(?<=abc)def/
11170        abc\P\P
11171    Partial match: abc
11172    
11173    /abc$/
11174        abc
11175     0: abc
11176        abc\P
11177     0: abc
11178        abc\P\P
11179    Partial match: abc
11180    
11181    /abc$/m
11182        abc
11183     0: abc
11184        abc\n
11185     0: abc
11186        abc\P\P
11187    Partial match: abc
11188        abc\n\P\P
11189     0: abc
11190        abc\P
11191     0: abc
11192        abc\n\P
11193     0: abc
11194    
11195    /abc\z/
11196        abc
11197     0: abc
11198        abc\P
11199     0: abc
11200        abc\P\P
11201    Partial match: abc
11202    
11203    /abc\Z/
11204        abc
11205     0: abc
11206        abc\P
11207     0: abc
11208        abc\P\P
11209    Partial match: abc
11210    
11211    /abc\b/
11212        abc
11213     0: abc
11214        abc\P
11215     0: abc
11216        abc\P\P
11217    Partial match: abc
11218    
11219    /abc\B/
11220        abc
11221    No match
11222        abc\P
11223    Partial match: abc
11224        abc\P\P
11225    Partial match: abc
11226    
11227    /.+/
11228        abc\>0
11229     0: abc
11230        abc\>1
11231     0: bc
11232        abc\>2
11233     0: c
11234        abc\>3
11235    No match
11236        abc\>4
11237    Error -24 (bad offset value)
11238        abc\>-4
11239    Error -24 (bad offset value)
11240    
11241    /^\cģ/
11242    Failed: \c must be followed by an ASCII character at offset 3
11243    
11244    /(?P<abn>(?P=abn)xxx)/BZ
11245    ------------------------------------------------------------------
11246            Bra
11247            Once
11248            CBra 1
11249            \1
11250            xxx
11251            Ket
11252            Ket
11253            Ket
11254            End
11255    ------------------------------------------------------------------
11256    
11257    /(a\1z)/BZ
11258    ------------------------------------------------------------------
11259            Bra
11260            Once
11261            CBra 1
11262            a
11263            \1
11264            z
11265            Ket
11266            Ket
11267            Ket
11268            End
11269    ------------------------------------------------------------------
11270    
11271    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11272    Failed: syntax error in subpattern name (missing terminator) at offset 29
11273    
11274    /(?P<abn>(?P=axn)xxx)/BZ
11275    Failed: reference to non-existent subpattern at offset 15
11276    
11277    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11278    ------------------------------------------------------------------
11279            Bra
11280            CBra 1
11281            \2
11282            xxx
11283            Ket
11284            CBra 2
11285            yy
11286            Ket
11287            Ket
11288            End
11289    ------------------------------------------------------------------
11290    
11291    /-- These tests are here because Perl gets the first one wrong. --/
11292    
11293    /(\R*)(.)/s
11294        \r\n
11295     0: \x0d
11296     1:
11297     2: \x0d
11298        \r\r\n\n\r
11299     0: \x0d\x0d\x0a\x0a\x0d
11300     1: \x0d\x0d\x0a\x0a
11301     2: \x0d
11302        \r\r\n\n\r\n
11303     0: \x0d\x0d\x0a\x0a\x0d
11304     1: \x0d\x0d\x0a\x0a
11305     2: \x0d
11306    
11307    /(\R)*(.)/s
11308        \r\n
11309     0: \x0d
11310     1: <unset>
11311     2: \x0d
11312        \r\r\n\n\r
11313     0: \x0d\x0d\x0a\x0a\x0d
11314     1: \x0a
11315     2: \x0d
11316        \r\r\n\n\r\n
11317     0: \x0d\x0d\x0a\x0a\x0d
11318     1: \x0a
11319     2: \x0d
11320    
11321    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11322        \r\n
11323     0: \x0d
11324     1:
11325     2: \x0d
11326        \r\r\n\n\r
11327     0: \x0d\x0d\x0a\x0a\x0d
11328     1: \x0d\x0d\x0a\x0a
11329     2: \x0d
11330        \r\r\n\n\r\n
11331     0: \x0d\x0d\x0a\x0a\x0d
11332     1: \x0d\x0d\x0a\x0a
11333     2: \x0d
11334    
11335    /-- --/
11336    
11337    /^abc$/BZ
11338    ------------------------------------------------------------------
11339            Bra
11340            ^
11341            abc
11342            $
11343            Ket
11344            End
11345    ------------------------------------------------------------------
11346    
11347    /^abc$/BZm
11348    ------------------------------------------------------------------
11349            Bra
11350         /m ^
11351            abc
11352         /m $
11353            Ket
11354            End
11355    ------------------------------------------------------------------
11356    
11357    /^(a)*+(\w)/S
11358        aaaaX
11359     0: aaaaX
11360     1: a
11361     2: X
11362        ** Failers
11363    No match
11364        aaaa
11365    No match
11366    
11367    /^(?:a)*+(\w)/S
11368        aaaaX
11369     0: aaaaX
11370     1: X
11371        ** Failers
11372    No match
11373        aaaa
11374    No match
11375    
11376    /(a)++1234/SDZ
11377    ------------------------------------------------------------------
11378            Bra
11379            CBraPos 1
11380            a
11381            KetRpos
11382            1234
11383            Ket
11384            End
11385    ------------------------------------------------------------------
11386    Capturing subpattern count = 1
11387    No options
11388    First char = 'a'
11389    Need char = '4'
11390    Subject length lower bound = 5
11391    No set of starting bytes
11392    
11393    /([abc])++1234/SI
11394    Capturing subpattern count = 1
11395    No options
11396    No first char
11397    Need char = '4'
11398    Subject length lower bound = 5
11399    Starting byte set: a b c
11400    
11401    /(?<=(abc)+)X/
11402    Failed: lookbehind assertion is not fixed length at offset 10
11403    
11404    /(^ab)/I
11405    Capturing subpattern count = 1
11406    Options: anchored
11407    No first char
11408    No need char
11409    
11410    /(^ab)++/I
11411    Capturing subpattern count = 1
11412    Options: anchored
11413    No first char
11414    No need char
11415    
11416    /(^ab|^)+/I
11417    Capturing subpattern count = 1
11418    Options: anchored
11419    No first char
11420    No need char
11421    
11422    /(^ab|^)++/I
11423    Capturing subpattern count = 1
11424    Options: anchored
11425    No first char
11426    No need char
11427    
11428    /(?:^ab)/I
11429    Capturing subpattern count = 0
11430    Options: anchored
11431    No first char
11432    No need char
11433    
11434    /(?:^ab)++/I
11435    Capturing subpattern count = 0
11436    Options: anchored
11437    No first char
11438    No need char
11439    
11440    /(?:^ab|^)+/I
11441    Capturing subpattern count = 0
11442    Options: anchored
11443    No first char
11444    No need char
11445    
11446    /(?:^ab|^)++/I
11447    Capturing subpattern count = 0
11448    Options: anchored
11449    No first char
11450    No need char
11451    
11452    /(.*ab)/I
11453    Capturing subpattern count = 1
11454    No options
11455    First char at start or follows newline
11456    Need char = 'b'
11457    
11458    /(.*ab)++/I
11459    Capturing subpattern count = 1
11460    No options
11461    First char at start or follows newline
11462    Need char = 'b'
11463    
11464    /(.*ab|.*)+/I
11465    Capturing subpattern count = 1
11466    No options
11467    First char at start or follows newline
11468    No need char
11469    
11470    /(.*ab|.*)++/I
11471    Capturing subpattern count = 1
11472    No options
11473    First char at start or follows newline
11474    No need char
11475    
11476    /(?:.*ab)/I
11477    Capturing subpattern count = 0
11478    No options
11479    First char at start or follows newline
11480    Need char = 'b'
11481    
11482    /(?:.*ab)++/I
11483    Capturing subpattern count = 0
11484    No options
11485    First char at start or follows newline
11486    Need char = 'b'
11487    
11488    /(?:.*ab|.*)+/I
11489    Capturing subpattern count = 0
11490    No options
11491    First char at start or follows newline
11492    No need char
11493    
11494    /(?:.*ab|.*)++/I
11495    Capturing subpattern count = 0
11496    No options
11497    First char at start or follows newline
11498    No need char
11499    
11500    /(?=a)[bcd]/I
11501    Capturing subpattern count = 0
11502    No options
11503    First char = 'a'
11504    No need char
11505    
11506    /((?=a))[bcd]/I
11507    Capturing subpattern count = 1
11508    No options
11509    First char = 'a'
11510    No need char
11511    
11512    /((?=a))+[bcd]/I
11513    Capturing subpattern count = 1
11514    No options
11515    First char = 'a'
11516    No need char
11517    
11518    /((?=a))++[bcd]/I
11519    Capturing subpattern count = 1
11520    No options
11521    First char = 'a'
11522    No need char
11523    
11524    /(?=a+)[bcd]/iI
11525    Capturing subpattern count = 0
11526    Options: caseless
11527    First char = 'a' (caseless)
11528    No need char
11529    
11530    /(?=a+?)[bcd]/iI
11531    Capturing subpattern count = 0
11532    Options: caseless
11533    First char = 'a' (caseless)
11534    No need char
11535    
11536    /(?=a++)[bcd]/iI
11537    Capturing subpattern count = 0
11538    Options: caseless
11539    First char = 'a' (caseless)
11540    No need char
11541    
11542    /(?=a{3})[bcd]/iI
11543    Capturing subpattern count = 0
11544    Options: caseless
11545    First char = 'a' (caseless)
11546    Need char = 'a' (caseless)
11547    
11548    /(abc)\1+/S
11549    
11550  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.453  
changed lines
  Added in v.604

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12