/[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 454 by ph10, Tue Sep 22 09:42:11 2009 UTC revision 771 by ph10, Tue Nov 29 15:34:12 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        NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9        5, and if Unicode Property Support is needed, use test 13. --/
10    
11  /-- 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
12      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
13      that were overlooked. --/      be some that were overlooked. --/
14    
15  /(a)b|/I  /(a)b|/I
16  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 103  Failed: missing terminating ] for charac Line 106  Failed: missing terminating ] for charac
106  /(?X)[\B]/  /(?X)[\B]/
107  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\R]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /(?X)[\X]/
113    Failed: invalid escape sequence in character class at offset 6
114    
115    /[\B]/BZ
116    ------------------------------------------------------------------
117            Bra
118            B
119            Ket
120            End
121    ------------------------------------------------------------------
122    
123    /[\R]/BZ
124    ------------------------------------------------------------------
125            Bra
126            R
127            Ket
128            End
129    ------------------------------------------------------------------
130    
131    /[\X]/BZ
132    ------------------------------------------------------------------
133            Bra
134            X
135            Ket
136            End
137    ------------------------------------------------------------------
138    
139  /[z-a]/  /[z-a]/
140  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
141    
# Line 145  Capturing subpattern count = 0 Line 178  Capturing subpattern count = 0
178  No options  No options
179  No first char  No first char
180  No need char  No need char
181    Subject length lower bound = 3
182  Starting byte set: c d e  Starting byte set: c d e
183      this sentence eventually mentions a cat      this sentence eventually mentions a cat
184   0: cat   0: cat
# Line 156  Capturing subpattern count = 0 Line 190  Capturing subpattern count = 0
190  Options: caseless  Options: caseless
191  No first char  No first char
192  No need char  No need char
193    Subject length lower bound = 3
194  Starting byte set: C D E c d e  Starting byte set: C D E c d e
195      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
196   0: CAT   0: CAT
# Line 167  Capturing subpattern count = 0 Line 202  Capturing subpattern count = 0
202  No options  No options
203  No first char  No first char
204  No need char  No need char
205    Subject length lower bound = 1
206  Starting byte set: a b c d  Starting byte set: a b c d
207    
208  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 174  Capturing subpattern count = 1 Line 210  Capturing subpattern count = 1
210  No options  No options
211  No first char  No first char
212  No need char  No need char
213    Subject length lower bound = 1
214  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
215    \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
216    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 194  Capturing subpattern count = 1 Line 231  Capturing subpattern count = 1
231  No options  No options
232  No first char  No first char
233  No need char  No need char
234    Subject length lower bound = 1
235  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236    
237  /(ab\2)/  /(ab\2)/
# Line 527  Capturing subpattern count = 0 Line 565  Capturing subpattern count = 0
565  No options  No options
566  No first char  No first char
567  No need char  No need char
568    Subject length lower bound = 1
569  Starting byte set: a b c d  Starting byte set: a b c d
570    
571  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 534  Capturing subpattern count = 0 Line 573  Capturing subpattern count = 0
573  Options: caseless  Options: caseless
574  No first char  No first char
575  No need char  No need char
576    Subject length lower bound = 1
577  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
578    
579  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 541  Capturing subpattern count = 1 Line 581  Capturing subpattern count = 1
581  Options: multiline  Options: multiline
582  No first char  No first char
583  No need char  No need char
584    Subject length lower bound = 1
585  Starting byte set: b c x y  Starting byte set: b c x y
586    
587  /(^a|^b)/Im  /(^a|^b)/Im
# Line 594  Need char = 'h' (caseless) Line 635  Need char = 'h' (caseless)
635  ------------------------------------------------------------------  ------------------------------------------------------------------
636          Bra          Bra
637          CBra 1          CBra 1
638       01 Opt       /i b
      NC b  
639          Ket          Ket
      00 Opt  
640          Ket          Ket
641          End          End
642  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 605  Capturing subpattern count = 1 Line 644  Capturing subpattern count = 1
644  No options  No options
645  First char = 'b' (caseless)  First char = 'b' (caseless)
646  No need char  No need char
647  Study returned NULL  Subject length lower bound = 1
648    No set of starting bytes
649    
650  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
651  Capturing subpattern count = 1  Capturing subpattern count = 1
652  No options  No options
653  No first char  No first char
654  No need char  No need char
655    Subject length lower bound = 1
656  Starting byte set: C a b c d  Starting byte set: C a b c d
657    
658  /a$/I  /a$/I
# Line 676  Capturing subpattern count = 0 Line 717  Capturing subpattern count = 0
717  No options  No options
718  No first char  No first char
719  No need char  No need char
720    Subject length lower bound = 1
721  Starting byte set: a b  Starting byte set: a b
722    
723  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 683  Capturing subpattern count = 1 Line 725  Capturing subpattern count = 1
725  No options  No options
726  No first char  No first char
727  Need char = 'a'  Need char = 'a'
728    Subject length lower bound = 5
729  Starting byte set: a o  Starting byte set: a o
730    
731  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 690  Capturing subpattern count = 0 Line 733  Capturing subpattern count = 0
733  No options  No options
734  No first char  No first char
735  No need char  No need char
736    Subject length lower bound = 1
737  Starting byte set: a b  Starting byte set: a b
738    
739  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 844  No match Line 888  No match
888      a      a
889  No match  No match
890    
891  /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
892  Capturing subpattern count = 0  Capturing subpattern count = 0
893  No options  No options
894  First char = 'T'  First char = 'T'
# Line 856  Max back reference = 1 Line 900  Max back reference = 1
900  Options: anchored  Options: anchored
901  No first char  No first char
902  No need char  No need char
903        aaaa
904    No match
905      aaaaaa      aaaaaa
906   0: aaaaaa  No match
907   1: aa  
908    /Perl does not fail these two for the final subjects. Neither did PCRE until/
909    /release 8.01. The problem is in backtracking into a subpattern that contains/
910    No match
911    /a recursive reference to itself. PCRE has now made these into atomic patterns./
912    No match
913    
914    /^(xa|=?\1a){2}$/
915        xa=xaa
916     0: xa=xaa
917     1: =xaa
918        ** Failers
919    No match
920        xa=xaaa
921    No match
922    
923    /^(xa|=?\1a)+$/
924        xa=xaa
925     0: xa=xaa
926     1: =xaa
927        ** Failers
928    No match
929        xa=xaaa
930    No match
931    
932  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
933  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1179  No need char Line 1248  No need char
1248  ------------------------------------------------------------------  ------------------------------------------------------------------
1249          Bra          Bra
1250          Bra          Bra
      04 Opt  
1251          AllAny*          AllAny*
1252          X          X
1253          Alt          Alt
      04 Opt  
1254          ^          ^
1255          B          B
1256          Ket          Ket
      00 Opt  
1257          Ket          Ket
1258          End          End
1259  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1658  Capturing subpattern count = 0 Line 1724  Capturing subpattern count = 0
1724  Options: anchored  Options: anchored
1725  No first char  No first char
1726  Need char = 'd'  Need char = 'd'
1727  Study returned NULL  Subject length lower bound = 4
1728    No set of starting bytes
1729    
1730  /\(             # ( at start  /\(             # ( at start
1731    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1890  Capturing subpattern count = 0 Line 1957  Capturing subpattern count = 0
1957  No options  No options
1958  No first char  No first char
1959  No need char  No need char
1960    Subject length lower bound = 1
1961  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
1962    _ 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
1963    
# Line 1951  Contains explicit CR or LF match Line 2019  Contains explicit CR or LF match
2019  No options  No options
2020  No first char  No first char
2021  No need char  No need char
2022    Subject length lower bound = 1
2023  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024    
2025  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2693  No need char Line 2762  No need char
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763          Bra          Bra
2764          a          a
2765       01 Opt       /i b
      NC b  
2766          Ket          Ket
2767          End          End
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2716  No match Line 2784  No match
2784          Bra          Bra
2785          CBra 1          CBra 1
2786          a          a
2787       01 Opt       /i b
      NC b  
2788          Ket          Ket
      00 Opt  
2789          Ket          Ket
2790          End          End
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2741  No match Line 2807  No match
2807  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809          Bra          Bra
2810       NC abc       /i abc
2811          Ket          Ket
2812          End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2754  Need char = 'c' (caseless) Line 2820  Need char = 'c' (caseless)
2820    (?i)abc/IxDZ    (?i)abc/IxDZ
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822          Bra          Bra
2823       NC abc       /i abc
2824          Ket          Ket
2825          End          End
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2927  No need char Line 2993  No need char
2993  /(x)*+/DZ  /(x)*+/DZ
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995          Bra          Bra
2996          Once          Braposzero
2997          Brazero          CBraPos 1
         CBra 1  
2998          x          x
2999          KetRmax          KetRpos
         Ket  
3000          Ket          Ket
3001          End          End
3002  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3157  Failed: POSIX collating elements are not Line 3221  Failed: POSIX collating elements are not
3221  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
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  /\L/I  /\L/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  /\N{name}/I  /\N{name}/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  /\U/I  /\U/I
3236  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
3237    
3238  /[/I  /[/I
3239  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 3485  Capturing subpattern count = 0
3485  No options  No options
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: a b  Starting byte set: a b
3490    
3491  /[^a]/I  /[^a]/I
# Line 3440  Capturing subpattern count = 0 Line 3505  Capturing subpattern count = 0
3505  No options  No options
3506  No first char  No first char
3507  Need char = '6'  Need char = '6'
3508    Subject length lower bound = 4
3509  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
3510    
3511  /a^b/I  /a^b/I
# Line 3473  Capturing subpattern count = 0 Line 3539  Capturing subpattern count = 0
3539  Options: caseless  Options: caseless
3540  No first char  No first char
3541  No need char  No need char
3542    Subject length lower bound = 1
3543  Starting byte set: A B a b  Starting byte set: A B a b
3544    
3545  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3480  Capturing subpattern count = 0 Line 3547  Capturing subpattern count = 0
3547  No options  No options
3548  No first char  No first char
3549  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3550    Subject length lower bound = 3
3551  Starting byte set: a b  Starting byte set: a b
3552    
3553  /abc(?C)def/I  /abc(?C)def/I
# Line 3515  Need char = 'f' Line 3583  Need char = 'f'
3583    1    ^    ^     f    1    ^    ^     f
3584   0: abcdef   0: abcdef
3585    
3586  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3587    Capturing subpattern count = 0
3588    No options
3589    No first char
3590    Need char = 'f'
3591    Subject length lower bound = 7
3592    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593        1234abcdef
3594    --->1234abcdef
3595      1 ^              \d
3596      1  ^             \d
3597      1   ^            \d
3598      1    ^           \d
3599      2    ^   ^       d
3600     0: 4abcdef
3601        *** Failers
3602    No match
3603        abcdef
3604    No match
3605    
3606    /(?C1)\dabc(?C2)def/ISS
3607  Capturing subpattern count = 0  Capturing subpattern count = 0
3608  No options  No options
3609  No first char  No first char
# Line 3830  Capturing subpattern count = 0 Line 3918  Capturing subpattern count = 0
3918  No options  No options
3919  No first char  No first char
3920  No need char  No need char
3921    Subject length lower bound = 1
3922  Starting byte set: a b  Starting byte set: a b
3923    
3924  /(?R)/I  /(?R)/I
# Line 3918  Need char = '<' Line 4007  Need char = '<'
4007          Bra          Bra
4008          CBra 1          CBra 1
4009          a          a
         Once  
4010          Recurse          Recurse
         Ket  
4011          b          b
4012          Ket          Ket
4013          Ket          Ket
# Line 4141  Need char = 'a' Line 4228  Need char = 'a'
4228          Any          Any
4229          \1          \1
4230          bbb          bbb
         Once  
4231          Recurse          Recurse
         Ket  
4232          d          d
4233          Ket          Ket
4234          End          End
# Line 4515  Need char = ']' Line 4600  Need char = ']'
4600          a          a
4601          CBra 2          CBra 2
4602          b          b
         Once  
4603          Recurse          Recurse
         Ket  
4604          c          c
4605          Ket          Ket
4606          Ket          Ket
# Line 4537  No need char Line 4620  No need char
4620          a          a
4621          CBra 2          CBra 2
4622          b          b
         Once  
4623          Recurse          Recurse
         Ket  
4624          c          c
4625          Ket          Ket
4626          KetRmax          KetRmax
# Line 4560  No need char Line 4641  No need char
4641          a          a
4642          CBra 2          CBra 2
4643          b          b
         Once  
4644          Recurse          Recurse
         Ket  
4645          c          c
4646          Ket          Ket
4647          Ket          Ket
# Line 4571  No need char Line 4650  No need char
4650          a          a
4651          CBra 2          CBra 2
4652          b          b
         Once  
4653          Recurse          Recurse
         Ket  
4654          c          c
4655          Ket          Ket
4656          Ket          Ket
# Line 4614  Capturing subpattern count = 3 Line 4691  Capturing subpattern count = 3
4691  Options: caseless  Options: caseless
4692  No first char  No first char
4693  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4694  Study returned NULL  Subject length lower bound = 8
4695    No set of starting bytes
4696       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4697   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4632  Capturing subpattern count = 0 Line 4710  Capturing subpattern count = 0
4710  No options  No options
4711  No first char  No first char
4712  Need char = 'b'  Need char = 'b'
4713  Study returned NULL  Subject length lower bound = 1
4714    No set of starting bytes
4715    
4716  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4717  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4652  Capturing subpattern count = 1 Line 4731  Capturing subpattern count = 1
4731  No options  No options
4732  No first char  No first char
4733  Need char = 'c'  Need char = 'c'
4734  Study returned NULL  Subject length lower bound = 1
4735    No set of starting bytes
4736    
4737  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4738  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4709  Need char = 'e' Line 4789  Need char = 'e'
4789   +4 ^   ^      e   +4 ^   ^      e
4790  No match  No match
4791    
4792  /a*b/ICDZ  /a*b/ICDZS
4793    ------------------------------------------------------------------
4794            Bra
4795            Callout 255 0 2
4796            a*+
4797            Callout 255 2 1
4798            b
4799            Callout 255 3 0
4800            Ket
4801            End
4802    ------------------------------------------------------------------
4803    Capturing subpattern count = 0
4804    Options:
4805    No first char
4806    Need char = 'b'
4807    Subject length lower bound = 1
4808    Starting byte set: a b
4809      ab
4810    --->ab
4811     +0 ^      a*
4812     +2 ^^     b
4813     +3 ^ ^
4814     0: ab
4815      aaaab
4816    --->aaaab
4817     +0 ^         a*
4818     +2 ^   ^     b
4819     +3 ^    ^
4820     0: aaaab
4821      aaaacb
4822    --->aaaacb
4823     +0 ^          a*
4824     +2 ^   ^      b
4825     +0  ^         a*
4826     +2  ^  ^      b
4827     +0   ^        a*
4828     +2   ^ ^      b
4829     +0    ^       a*
4830     +2    ^^      b
4831     +0      ^     a*
4832     +2      ^     b
4833     +3      ^^
4834     0: b
4835    
4836    /a*b/ICDZSS
4837  ------------------------------------------------------------------  ------------------------------------------------------------------
4838          Bra          Bra
4839          Callout 255 0 2          Callout 255 0 2
# Line 4792  Need char = 'b' Line 4916  Need char = 'b'
4916   +2    ^^      b   +2    ^^      b
4917  No match  No match
4918    
4919  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4920    ------------------------------------------------------------------
4921            Bra
4922            Callout 255 0 9
4923            CBra 1
4924            Callout 255 1 1
4925            a
4926            Callout 255 2 1
4927            b
4928            Callout 255 3 1
4929            c
4930            Callout 255 4 0
4931            Alt
4932            Callout 255 5 1
4933            d
4934            Callout 255 6 1
4935            e
4936            Callout 255 7 1
4937            f
4938            Callout 255 8 0
4939            Ket
4940            Callout 255 9 1
4941            x
4942            Callout 255 10 0
4943            Ket
4944            End
4945    ------------------------------------------------------------------
4946    Capturing subpattern count = 1
4947    Options:
4948    No first char
4949    Need char = 'x'
4950    Subject length lower bound = 4
4951    Starting byte set: a d
4952      abcx
4953    --->abcx
4954     +0 ^        (abc|def)
4955     +1 ^        a
4956     +2 ^^       b
4957     +3 ^ ^      c
4958     +4 ^  ^     |
4959     +9 ^  ^     x
4960    +10 ^   ^
4961     0: abcx
4962     1: abc
4963      defx
4964    --->defx
4965     +0 ^        (abc|def)
4966     +1 ^        a
4967     +5 ^        d
4968     +6 ^^       e
4969     +7 ^ ^      f
4970     +8 ^  ^     )
4971     +9 ^  ^     x
4972    +10 ^   ^
4973     0: defx
4974     1: def
4975      ** Failers
4976    No match
4977      abcdefzx
4978    --->abcdefzx
4979     +0 ^            (abc|def)
4980     +1 ^            a
4981     +2 ^^           b
4982     +3 ^ ^          c
4983     +4 ^  ^         |
4984     +9 ^  ^         x
4985     +5 ^            d
4986     +0    ^         (abc|def)
4987     +1    ^         a
4988     +5    ^         d
4989     +6    ^^        e
4990     +7    ^ ^       f
4991     +8    ^  ^      )
4992     +9    ^  ^      x
4993    No match
4994    
4995    /(abc|def)x/ICDZSS
4996  ------------------------------------------------------------------  ------------------------------------------------------------------
4997          Bra          Bra
4998          Callout 255 0 9          Callout 255 0 9
# Line 4846  Need char = 'x' Line 5046  Need char = 'x'
5046  +10 ^   ^  +10 ^   ^
5047   0: defx   0: defx
5048   1: def   1: def
5049      ** Failers
5050    No match
5051    abcdefzx    abcdefzx
5052  --->abcdefzx  --->abcdefzx
5053   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4946  No need char Line 5148  No need char
5148   0: abcdcdcd   0: abcdcdcd
5149   1: cd   1: cd
5150    
5151  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5152    ------------------------------------------------------------------
5153            Bra
5154            Callout 255 0 14
5155            CBra 1
5156            Callout 255 1 4
5157            [ab]
5158            Callout 255 5 1
5159            {
5160            Callout 255 6 1
5161            ,
5162            Callout 255 7 1
5163            4
5164            Callout 255 8 1
5165            }
5166            Callout 255 9 1
5167            c
5168            Callout 255 10 0
5169            Alt
5170            Callout 255 11 1
5171            x
5172            Callout 255 12 1
5173            y
5174            Callout 255 13 0
5175            Ket
5176            Callout 255 14 0
5177            Ket
5178            End
5179    ------------------------------------------------------------------
5180    Capturing subpattern count = 1
5181    Options:
5182    No first char
5183    No need char
5184    Subject length lower bound = 2
5185    Starting byte set: a b x
5186        Note: that { does NOT introduce a quantifier
5187    --->Note: that { does NOT introduce a quantifier
5188     +0         ^                                        ([ab]{,4}c|xy)
5189     +1         ^                                        [ab]
5190     +5         ^^                                       {
5191    +11         ^                                        x
5192     +0                                 ^                ([ab]{,4}c|xy)
5193     +1                                 ^                [ab]
5194     +5                                 ^^               {
5195    +11                                 ^                x
5196     +0                                     ^            ([ab]{,4}c|xy)
5197     +1                                     ^            [ab]
5198     +5                                     ^^           {
5199    +11                                     ^            x
5200    No match
5201    
5202    /([ab]{,4}c|xy)/ICDZSS
5203  ------------------------------------------------------------------  ------------------------------------------------------------------
5204          Bra          Bra
5205          Callout 255 0 14          Callout 255 0 14
# Line 5398  No match Line 5651  No match
5651      123456\P      123456\P
5652  No match  No match
5653    
5654  /abc/I>testsavedregex  /abc/IS>testsavedregex
5655  Capturing subpattern count = 0  Capturing subpattern count = 0
5656  No options  No options
5657  First char = 'a'  First char = 'a'
5658  Need char = 'c'  Need char = 'c'
5659  Compiled regex written to testsavedregex  Subject length lower bound = 3
5660    No set of starting bytes
5661    Compiled pattern written to testsavedregex
5662    Study data written to testsavedregex
5663  <testsavedregex  <testsavedregex
5664  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5665  No study data  Study data loaded from testsavedregex
5666      abc      abc
5667   0: abc   0: abc
5668      ** Failers      ** Failers
# Line 5414  No match Line 5670  No match
5670      bca      bca
5671  No match  No match
5672    
5673  /abc/IF>testsavedregex  /abc/ISS>testsavedregex
5674  Capturing subpattern count = 0  Capturing subpattern count = 0
5675  No options  No options
5676  First char = 'a'  First char = 'a'
5677  Need char = 'c'  Need char = 'c'
5678  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5679  <testsavedregex  <testsavedregex
5680  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5681  No study data  No study data
5682      abc      abc
5683   0: abc   0: abc
# Line 5430  No match Line 5686  No match
5686      bca      bca
5687  No match  No match
5688    
5689  /(a|b)/IS>testsavedregex  /abc/IFS>testsavedregex
5690  Capturing subpattern count = 1  Capturing subpattern count = 0
5691  No options  No options
5692  No first char  First char = 'a'
5693  No need char  Need char = 'c'
5694  Starting byte set: a b  Subject length lower bound = 3
5695  Compiled regex written to testsavedregex  No set of starting bytes
5696    Compiled pattern written to testsavedregex
5697  Study data written to testsavedregex  Study data written to testsavedregex
5698  <testsavedregex  <testsavedregex
5699  Compiled regex loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5700  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5701      abc      abc
5702     0: abc
5703        ** Failers
5704    No match
5705        bca
5706    No match
5707    
5708    /abc/IFSS>testsavedregex
5709    Capturing subpattern count = 0
5710    No options
5711    First char = 'a'
5712    Need char = 'c'
5713    Compiled pattern written to testsavedregex
5714    <testsavedregex
5715    Compiled pattern (byte-inverted) loaded from testsavedregex
5716    No study data
5717        abc
5718     0: abc
5719        ** Failers
5720    No match
5721        bca
5722    No match
5723    
5724    /(a|b)/IS>testsavedregex
5725    Capturing subpattern count = 1
5726    No options
5727    No first char
5728    No need char
5729    Subject length lower bound = 1
5730    Starting byte set: a b
5731    Compiled pattern written to testsavedregex
5732    Study data written to testsavedregex
5733    <testsavedregex
5734    Compiled pattern loaded from testsavedregex
5735    Study data loaded from testsavedregex
5736        abc
5737     0: a
5738     1: a
5739        ** Failers
5740     0: a
5741     1: a
5742        def
5743    No match
5744    
5745    /(a|b)/ISS>testsavedregex
5746    Capturing subpattern count = 1
5747    No options
5748    No first char
5749    No need char
5750    Compiled pattern written to testsavedregex
5751    <testsavedregex
5752    Compiled pattern loaded from testsavedregex
5753    No study data
5754        abc
5755   0: a   0: a
5756   1: a   1: a
5757      ** Failers      ** Failers
# Line 5455  Capturing subpattern count = 1 Line 5765  Capturing subpattern count = 1
5765  No options  No options
5766  No first char  No first char
5767  No need char  No need char
5768    Subject length lower bound = 1
5769  Starting byte set: a b  Starting byte set: a b
5770  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5771  Study data written to testsavedregex  Study data written to testsavedregex
5772  <testsavedregex  <testsavedregex
5773  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5774  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5775      abc      abc
5776   0: a   0: a
# Line 5470  Study data loaded from testsavedregex Line 5781  Study data loaded from testsavedregex
5781      def      def
5782  No match  No match
5783    
5784    /(a|b)/ISSF>testsavedregex
5785    Capturing subpattern count = 1
5786    No options
5787    No first char
5788    No need char
5789    Compiled pattern written to testsavedregex
5790    <testsavedregex
5791    Compiled pattern (byte-inverted) loaded from testsavedregex
5792    No study data
5793        abc
5794     0: a
5795     1: a
5796        ** Failers
5797     0: a
5798     1: a
5799        def
5800    No match
5801    
5802  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5803  Capturing subpattern count = 3  Capturing subpattern count = 3
5804  Max back reference = 1  Max back reference = 1
5805  Options: multiline dotall  Options: multiline dotall
5806  First char = '<'  First char = '<'
5807  Need char = '>'  Need char = '>'
5808      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5809   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5810   1: seite   1: seite
5811   2: \x0a   2: \x0a
# Line 6167  Capturing subpattern count = 0 Line 6496  Capturing subpattern count = 0
6496  No options  No options
6497  No first char  No first char
6498  Need char = ','  Need char = ','
6499    Subject length lower bound = 1
6500  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501      \x0b,\x0b      \x0b,\x0b
6502   0: ,   0: ,
# Line 6471  Capturing subpattern count = 1 Line 6801  Capturing subpattern count = 1
6801  No options  No options
6802  No first char  No first char
6803  No need char  No need char
6804    Subject length lower bound = 1
6805  Starting byte set: C a b c d  Starting byte set: C a b c d
6806    
6807  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6478  Capturing subpattern count = 1 Line 6809  Capturing subpattern count = 1
6809  No options  No options
6810  No first char  No first char
6811  Need char = 'z'  Need char = 'z'
6812    Subject length lower bound = 4
6813  Starting byte set: a b  Starting byte set: a b
6814    
6815  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6485  Capturing subpattern count = 1 Line 6817  Capturing subpattern count = 1
6817  No options  No options
6818  No first char  No first char
6819  Need char = 'z'  Need char = 'z'
6820    Subject length lower bound = 4
6821  Starting byte set: a b  Starting byte set: a b
6822    
6823  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6492  Capturing subpattern count = 1 Line 6825  Capturing subpattern count = 1
6825  No options  No options
6826  No first char  No first char
6827  Need char = 'z'  Need char = 'z'
6828    Subject length lower bound = 4
6829  Starting byte set: a b c  Starting byte set: a b c
6830    
6831  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6499  Capturing subpattern count = 1 Line 6833  Capturing subpattern count = 1
6833  No options  No options
6834  No first char  No first char
6835  Need char = 'z'  Need char = 'z'
6836    Subject length lower bound = 4
6837  Starting byte set: a b c  Starting byte set: a b c
6838    
6839  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6506  Capturing subpattern count = 1 Line 6841  Capturing subpattern count = 1
6841  No options  No options
6842  No first char  No first char
6843  Need char = 'z'  Need char = 'z'
6844    Subject length lower bound = 4
6845  Starting byte set: a b c d  Starting byte set: a b c d
6846    
6847  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6513  Capturing subpattern count = 1 Line 6849  Capturing subpattern count = 1
6849  No options  No options
6850  No first char  No first char
6851  Need char = 'z'  Need char = 'z'
6852    Subject length lower bound = 4
6853  Starting byte set: a b c d  Starting byte set: a b c d
6854    
6855  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6585  No match Line 6922  No match
6922  ------------------------------------------------------------------  ------------------------------------------------------------------
6923          Bra          Bra
6924          ^          ^
6925          a*       /i a*
6926       NC A       /i A
6927          \d          \d
6928          Ket          Ket
6929          End          End
# Line 6605  Capturing subpattern count = 1 Line 6942  Capturing subpattern count = 1
6942  No options  No options
6943  No first char  No first char
6944  No need char  No need char
6945    Subject length lower bound = 1
6946  Starting byte set: a b c d  Starting byte set: a b c d
6947    
6948  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6612  Capturing subpattern count = 1 Line 6950  Capturing subpattern count = 1
6950  No options  No options
6951  No first char  No first char
6952  No need char  No need char
6953    Subject length lower bound = 1
6954  Starting byte set: a b c d  Starting byte set: a b c d
6955    
6956  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6619  Capturing subpattern count = 1 Line 6958  Capturing subpattern count = 1
6958  No options  No options
6959  No first char  No first char
6960  No need char  No need char
6961    Subject length lower bound = 1
6962  Starting byte set: a b c d  Starting byte set: a b c d
6963    
6964  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6626  Capturing subpattern count = 1 Line 6966  Capturing subpattern count = 1
6966  No options  No options
6967  No first char  No first char
6968  No need char  No need char
6969    Subject length lower bound = 2
6970  Starting byte set: a b  Starting byte set: a b
6971    
6972  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7210  Matched, but too many substrings Line 7551  Matched, but too many substrings
7551  /[^a]+a/BZi  /[^a]+a/BZi
7552  ------------------------------------------------------------------  ------------------------------------------------------------------
7553          Bra          Bra
7554          [^A]++       /i [^A]++
7555       NC a       /i a
7556          Ket          Ket
7557          End          End
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7219  Matched, but too many substrings Line 7560  Matched, but too many substrings
7560  /[^a]+A/BZi  /[^a]+A/BZi
7561  ------------------------------------------------------------------  ------------------------------------------------------------------
7562          Bra          Bra
7563          [^A]++       /i [^A]++
7564       NC A       /i A
7565          Ket          Ket
7566          End          End
7567  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7415  No match Line 7756  No match
7756  ------------------------------------------------------------------  ------------------------------------------------------------------
7757          Bra          Bra
7758          ^          ^
         Once  
7759          Recurse          Recurse
         Ket  
7760          [()]          [()]
7761          CBra 1          CBra 1
7762          Ket          Ket
# Line 7431  No match Line 7770  No match
7770          ^          ^
7771          CBra 1          CBra 1
7772          Cond          Cond
7773        2 Cond ref        2 Cond nref
7774          y          y
7775          Ket          Ket
7776          [()]          [()]
# Line 7451  No match Line 7790  No match
7790  ------------------------------------------------------------------  ------------------------------------------------------------------
7791          Bra          Bra
7792          ^          ^
         Once  
7793          Recurse          Recurse
         Ket  
7794          ()          ()
7795          CBra 1          CBra 1
7796          Ket          Ket
# Line 7465  No match Line 7802  No match
7802  ------------------------------------------------------------------  ------------------------------------------------------------------
7803          Bra          Bra
7804          ^          ^
         Once  
7805          Recurse          Recurse
         Ket  
7806          [(\]a]          [(\]a]
7807          CBra 1          CBra 1
7808          Ket          Ket
# Line 7480  No match Line 7815  No match
7815  ------------------------------------------------------------------  ------------------------------------------------------------------
7816          Bra          Bra
7817          ^          ^
         Once  
7818          Recurse          Recurse
         Ket  
7819          CBra 1          CBra 1
7820          Ket          Ket
7821          Ket          Ket
# Line 7614  Options: extended Line 7947  Options: extended
7947  First char = 'x'  First char = 'x'
7948  Need char = 'z'  Need char = 'z'
7949    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7950  /(a|)*\d/  /(a|)*\d/
7951    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952  No match  No match
# Line 7934  No match Line 8264  No match
8264          Alt          Alt
8265          c          c
8266          Ket          Ket
         Once  
8267          Recurse          Recurse
8268          Ket          Ket
         Ket  
8269          End          End
8270  ------------------------------------------------------------------  ------------------------------------------------------------------
8271      abc      abc
# Line 7948  No match Line 8276  No match
8276  ------------------------------------------------------------------  ------------------------------------------------------------------
8277          Bra          Bra
8278          xy          xy
         Once  
8279          Recurse          Recurse
         Ket  
8280          CBra 1          CBra 1
8281          abc          abc
8282          Ket          Ket
# Line 8431  No match Line 8757  No match
8757  ------------------------------------------------------------------  ------------------------------------------------------------------
8758    
8759  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8760  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8761   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8762    
8763  /[\E]AAA/  /[\E]AAA/
# Line 8604  No match Line 8930  No match
8930  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8931  No match  No match
8932    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8933  /a(*MARK)b/  /a(*MARK)b/
8934  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8935    
8936  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8937  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8616  Failed: number is too big at offset 19 Line 8939  Failed: number is too big at offset 19
8939  /\g6666666666/  /\g6666666666/
8940  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8941    
8942  /[\g6666666666]/  /[\g6666666666]/BZ
8943  Failed: number is too big at offset 12  ------------------------------------------------------------------
8944            Bra
8945            [6g]
8946            Ket
8947            End
8948    ------------------------------------------------------------------
8949    
8950  /(?1)\c[/  /(?1)\c[/
8951  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8697  No match Line 9025  No match
9025  No match  No match
9026      a\x85b      a\x85b
9027  No match  No match
9028    
9029    /(*ANY).*/g
9030        abc\r\ndef
9031     0: abc
9032     0:
9033     0: def
9034     0:
9035    
9036    /(*ANYCRLF).*/g
9037        abc\r\ndef
9038     0: abc
9039     0:
9040     0: def
9041     0:
9042    
9043    /(*CRLF).*/g
9044        abc\r\ndef
9045     0: abc
9046     0:
9047     0: def
9048     0:
9049    
9050  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9051  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8902  Failed: subpattern name expected at offs Line 9251  Failed: subpattern name expected at offs
9251  /\k{}/  /\k{}/
9252  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9253    
9254    /\k/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256    
9257    /\kabc/
9258    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259    
9260  /(?P=)/  /(?P=)/
9261  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9262    
# Line 9069  Capturing subpattern count = 1 Line 9424  Capturing subpattern count = 1
9424  No options  No options
9425  No first char  No first char
9426  No need char  No need char
9427    Subject length lower bound = 1
9428  Starting byte set: x y z  Starting byte set: x y z
9429    
9430  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9182  No match Line 9538  No match
9538   +0        ^     x   +0        ^     x
9539   +0         ^    x   +0         ^    x
9540  No match  No match
9541    
9542    /(*NO_START_OPT)xyz/C
9543      abcxyz
9544    --->abcxyz
9545    +15 ^          x
9546    +15  ^         x
9547    +15   ^        x
9548    +15    ^       x
9549    +16    ^^      y
9550    +17    ^ ^     z
9551    +18    ^  ^
9552     0: xyz
9553    
9554    /xyz/CY
9555      abcxyz
9556    --->abcxyz
9557     +0 ^          x
9558     +0  ^         x
9559     +0   ^        x
9560     +0    ^       x
9561     +1    ^^      y
9562     +2    ^ ^     z
9563     +3    ^  ^
9564     0: xyz
9565    
9566  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9567      "ab"      "ab"
# Line 9535  Partial match: +ab Line 9915  Partial match: +ab
9915  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916  ------------------------------------------------------------------  ------------------------------------------------------------------
9917          Bra          Bra
         Once  
9918          Recurse          Recurse
         Ket  
         Once  
9919          Recurse          Recurse
         Ket  
9920          Cond          Cond
9921          Cond def          Cond def
9922          CBra 1          CBra 1
# Line 9561  Partial match: +ab Line 9937  Partial match: +ab
9937  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938  ------------------------------------------------------------------  ------------------------------------------------------------------
9939          Bra          Bra
         Once  
9940          Recurse          Recurse
         Ket  
         Once  
9941          Recurse          Recurse
         Ket  
9942          Cond          Cond
9943          Cond def          Cond def
9944          CBra 1          CBra 1
# Line 9838  Failed: reference to non-existent subpat Line 10210  Failed: reference to non-existent subpat
10210  /(?<=b(?1))xyz(b+)pqrstuvew/  /(?<=b(?1))xyz(b+)pqrstuvew/
10211  Failed: lookbehind assertion is not fixed length at offset 26  Failed: lookbehind assertion is not fixed length at offset 26
10212    
10213    /(a|bc)\1/SI
10214    Capturing subpattern count = 1
10215    Max back reference = 1
10216    No options
10217    No first char
10218    No need char
10219    Subject length lower bound = 2
10220    Starting byte set: a b
10221    
10222    /(a|bc)\1{2,3}/SI
10223    Capturing subpattern count = 1
10224    Max back reference = 1
10225    No options
10226    No first char
10227    No need char
10228    Subject length lower bound = 3
10229    Starting byte set: a b
10230    
10231    /(a|bc)(?1)/SI
10232    Capturing subpattern count = 1
10233    No options
10234    No first char
10235    No need char
10236    Subject length lower bound = 2
10237    Starting byte set: a b
10238    
10239    /(a|b\1)(a|b\1)/SI
10240    Capturing subpattern count = 2
10241    Max back reference = 1
10242    No options
10243    No first char
10244    No need char
10245    Subject length lower bound = 2
10246    Starting byte set: a b
10247    
10248    /(a|b\1){2}/SI
10249    Capturing subpattern count = 1
10250    Max back reference = 1
10251    No options
10252    No first char
10253    No need char
10254    Subject length lower bound = 2
10255    Starting byte set: a b
10256    
10257    /(a|bbbb\1)(a|bbbb\1)/SI
10258    Capturing subpattern count = 2
10259    Max back reference = 1
10260    No options
10261    No first char
10262    No need char
10263    Subject length lower bound = 2
10264    Starting byte set: a b
10265    
10266    /(a|bbbb\1){2}/SI
10267    Capturing subpattern count = 1
10268    Max back reference = 1
10269    No options
10270    No first char
10271    No need char
10272    Subject length lower bound = 2
10273    Starting byte set: a b
10274    
10275    /^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
10276    Capturing subpattern count = 1
10277    Options: anchored
10278    No first char
10279    Need char = ':'
10280    Subject length lower bound = 22
10281    No set of starting bytes
10282    
10283    /  (?: [\040\t] |  \(
10284    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10285    \)  )*                          # optional leading comment
10286    (?:    (?:
10287    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10288    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10289    |
10290    " (?:                      # opening quote...
10291    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10292    |                     #    or
10293    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10294    )* "  # closing quote
10295    )                    # initial word
10296    (?:  (?: [\040\t] |  \(
10297    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10298    \)  )*  \.  (?: [\040\t] |  \(
10299    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10300    \)  )*   (?:
10301    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10302    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10303    |
10304    " (?:                      # opening quote...
10305    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10306    |                     #    or
10307    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10308    )* "  # closing quote
10309    )  )* # further okay, if led by a period
10310    (?: [\040\t] |  \(
10311    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10312    \)  )*  @  (?: [\040\t] |  \(
10313    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10314    \)  )*    (?:
10315    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10316    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10317    |   \[                         # [
10318    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10319    \]                        #           ]
10320    )                           # initial subdomain
10321    (?:                                  #
10322    (?: [\040\t] |  \(
10323    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10324    \)  )*  \.                        # if led by a period...
10325    (?: [\040\t] |  \(
10326    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10327    \)  )*   (?:
10328    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10329    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10330    |   \[                         # [
10331    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10332    \]                        #           ]
10333    )                     #   ...further okay
10334    )*
10335    # address
10336    |                     #  or
10337    (?:
10338    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10339    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10340    |
10341    " (?:                      # opening quote...
10342    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10343    |                     #    or
10344    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10345    )* "  # closing quote
10346    )             # one word, optionally followed by....
10347    (?:
10348    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10349    \(
10350    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10351    \)       |  # comments, or...
10352    
10353    " (?:                      # opening quote...
10354    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10355    |                     #    or
10356    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10357    )* "  # closing quote
10358    # quoted strings
10359    )*
10360    <  (?: [\040\t] |  \(
10361    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10362    \)  )*                     # leading <
10363    (?:  @  (?: [\040\t] |  \(
10364    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10365    \)  )*    (?:
10366    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10367    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10368    |   \[                         # [
10369    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10370    \]                        #           ]
10371    )                           # initial subdomain
10372    (?:                                  #
10373    (?: [\040\t] |  \(
10374    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10375    \)  )*  \.                        # if led by a period...
10376    (?: [\040\t] |  \(
10377    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10378    \)  )*   (?:
10379    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10380    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10381    |   \[                         # [
10382    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10383    \]                        #           ]
10384    )                     #   ...further okay
10385    )*
10386    
10387    (?:  (?: [\040\t] |  \(
10388    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10389    \)  )*  ,  (?: [\040\t] |  \(
10390    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10391    \)  )*  @  (?: [\040\t] |  \(
10392    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10393    \)  )*    (?:
10394    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10395    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10396    |   \[                         # [
10397    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10398    \]                        #           ]
10399    )                           # initial subdomain
10400    (?:                                  #
10401    (?: [\040\t] |  \(
10402    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10403    \)  )*  \.                        # if led by a period...
10404    (?: [\040\t] |  \(
10405    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10406    \)  )*   (?:
10407    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10408    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10409    |   \[                         # [
10410    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10411    \]                        #           ]
10412    )                     #   ...further okay
10413    )*
10414    )* # further okay, if led by comma
10415    :                                # closing colon
10416    (?: [\040\t] |  \(
10417    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10418    \)  )*  )? #       optional route
10419    (?:
10420    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10421    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10422    |
10423    " (?:                      # opening quote...
10424    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10425    |                     #    or
10426    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10427    )* "  # closing quote
10428    )                    # initial word
10429    (?:  (?: [\040\t] |  \(
10430    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10431    \)  )*  \.  (?: [\040\t] |  \(
10432    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10433    \)  )*   (?:
10434    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10435    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10436    |
10437    " (?:                      # opening quote...
10438    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10439    |                     #    or
10440    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10441    )* "  # closing quote
10442    )  )* # further okay, if led by a period
10443    (?: [\040\t] |  \(
10444    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10445    \)  )*  @  (?: [\040\t] |  \(
10446    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10447    \)  )*    (?:
10448    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10449    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10450    |   \[                         # [
10451    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10452    \]                        #           ]
10453    )                           # initial subdomain
10454    (?:                                  #
10455    (?: [\040\t] |  \(
10456    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10457    \)  )*  \.                        # if led by a period...
10458    (?: [\040\t] |  \(
10459    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10460    \)  )*   (?:
10461    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10462    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10463    |   \[                         # [
10464    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10465    \]                        #           ]
10466    )                     #   ...further okay
10467    )*
10468    #       address spec
10469    (?: [\040\t] |  \(
10470    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10471    \)  )*  > #                  trailing >
10472    # name and address
10473    )  (?: [\040\t] |  \(
10474    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10475    \)  )*                       # optional trailing comment
10476    /xSI
10477    Capturing subpattern count = 0
10478    Contains explicit CR or LF match
10479    Options: extended
10480    No first char
10481    No need char
10482    Subject length lower bound = 3
10483    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10484      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
10485      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10486    
10487    /<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
10488    Capturing subpattern count = 11
10489    Options: caseless dotall
10490    First char = '<'
10491    Need char = '>'
10492    Subject length lower bound = 47
10493    No set of starting bytes
10494    
10495    "(?>.*/)foo"SI
10496    Capturing subpattern count = 0
10497    No options
10498    First char at start or follows newline
10499    Need char = 'o'
10500    Subject length lower bound = 4
10501    No set of starting bytes
10502    
10503    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10504    Capturing subpattern count = 0
10505    Options: extended
10506    No first char
10507    Need char = '-'
10508    Subject length lower bound = 8
10509    No set of starting bytes
10510    
10511    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10512    Capturing subpattern count = 1
10513    Options: caseless
10514    No first char
10515    No need char
10516    Subject length lower bound = 1
10517    Starting byte set: A B C a b c
10518    
10519    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10520    Capturing subpattern count = 0
10521    No options
10522    No first char
10523    Need char = 'b'
10524    Subject length lower bound = 41
10525    Starting byte set: c d
10526    
10527    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10528     ([\"\'])?                       # find single or double quote
10529     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10530                                     # quote, otherwise match up to next space
10531    /isxSI
10532    Capturing subpattern count = 3
10533    Max back reference = 1
10534    Options: caseless extended dotall
10535    First char = '<'
10536    Need char = '='
10537    Subject length lower bound = 9
10538    No set of starting bytes
10539    
10540    /^(?!:)                       # colon disallowed at start
10541      (?:                         # start of item
10542        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10543        (?(1)0 | () ) )           # if null previously matched, fail; else null
10544        :                         # followed by colon
10545      ){1,7}                      # end item; 1-7 of them required
10546      [0-9a-f]{1,4} $             # final hex number at end of string
10547      (?(1)|.)                    # check that there was an empty component
10548      /xiIS
10549    Capturing subpattern count = 1
10550    Options: anchored caseless extended
10551    No first char
10552    Need char = ':'
10553    Subject length lower bound = 2
10554    No set of starting bytes
10555    
10556    /(?|(?<a>A)|(?<a>B))/I
10557    Capturing subpattern count = 1
10558    Named capturing subpatterns:
10559      a   1
10560      a   1
10561    No options
10562    No first char
10563    No need char
10564        AB\Ca
10565     0: A
10566     1: A
10567      C A (1) a
10568        BA\Ca
10569     0: B
10570     1: B
10571      C B (1) a
10572    
10573    /(?|(?<a>A)|(?<b>B))/
10574    Failed: different names for subpatterns of the same number are not allowed at offset 15
10575    
10576    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10577        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10578        (?('quote')[a-z]+|[0-9]+)/JIx
10579    Capturing subpattern count = 6
10580    Named capturing subpatterns:
10581      apostrophe   2
10582      apostrophe   5
10583      quote        1
10584      quote        4
10585      realquote    3
10586      realquote    6
10587    Options: extended dupnames
10588    No first char
10589    No need char
10590        a"aaaaa
10591     0: a"aaaaa
10592     1: "
10593     2: <unset>
10594     3: "
10595        b"aaaaa
10596     0: b"aaaaa
10597     1: <unset>
10598     2: <unset>
10599     3: <unset>
10600     4: "
10601     5: <unset>
10602     6: "
10603        ** Failers
10604    No match
10605        b"11111
10606    No match
10607        a"11111
10608    No match
10609    
10610    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10611    ------------------------------------------------------------------
10612            Bra
10613            ^
10614            Bra
10615            CBra 1
10616            a
10617            Ket
10618            CBra 2
10619            b
10620            Ket
10621            CBra 3
10622            c
10623            Ket
10624            CBra 4
10625            d
10626            Ket
10627            Alt
10628            CBra 1
10629            e
10630            Ket
10631            Ket
10632            Cond
10633          4 Cond nref
10634            X
10635            Alt
10636            Y
10637            Ket
10638            Ket
10639            End
10640    ------------------------------------------------------------------
10641    Capturing subpattern count = 4
10642    Named capturing subpatterns:
10643      D   4
10644      D   1
10645    Options: anchored extended dupnames
10646    No first char
10647    No need char
10648        abcdX
10649     0: abcdX
10650     1: a
10651     2: b
10652     3: c
10653     4: d
10654        eX
10655     0: eX
10656     1: e
10657        ** Failers
10658    No match
10659        abcdY
10660    No match
10661        ey
10662    No match
10663    
10664    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10665    ------------------------------------------------------------------
10666            Bra
10667            CBra 1
10668            a
10669            Ket
10670            CBra 2
10671            b
10672            Ket
10673            CBra 3
10674            c
10675            Ket
10676            CBra 4
10677            d
10678            Cond
10679            Cond nrecurse 1
10680            $
10681            Alt
10682            Recurse
10683            Ket
10684            Ket
10685            Ket
10686            End
10687    ------------------------------------------------------------------
10688    Capturing subpattern count = 4
10689    Named capturing subpatterns:
10690      A   1
10691      A   4
10692    Options: extended dupnames
10693    First char = 'a'
10694    Need char = 'd'
10695        abcdd
10696     0: abcdd
10697     1: a
10698     2: b
10699     3: c
10700     4: dd
10701        ** Failers
10702    No match
10703        abcdde
10704    No match
10705    
10706    /abcd*/
10707        xxxxabcd\P
10708     0: abcd
10709        xxxxabcd\P\P
10710    Partial match: abcd
10711    
10712    /abcd*/i
10713        xxxxabcd\P
10714     0: abcd
10715        xxxxabcd\P\P
10716    Partial match: abcd
10717        XXXXABCD\P
10718     0: ABCD
10719        XXXXABCD\P\P
10720    Partial match: ABCD
10721    
10722    /abc\d*/
10723        xxxxabc1\P
10724     0: abc1
10725        xxxxabc1\P\P
10726    Partial match: abc1
10727    
10728    /(a)bc\1*/
10729        xxxxabca\P
10730     0: abca
10731     1: a
10732        xxxxabca\P\P
10733    Partial match: abca
10734    
10735    /abc[de]*/
10736        xxxxabcde\P
10737     0: abcde
10738        xxxxabcde\P\P
10739    Partial match: abcde
10740    
10741    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10742        broken and not behaving as specified in that it *does* bumpalong after
10743        hitting (*COMMIT). --/
10744    
10745    /(?1)(A(*COMMIT)|B)D/
10746        ABD
10747     0: ABD
10748     1: B
10749        XABD
10750     0: ABD
10751     1: B
10752        BAD
10753     0: BAD
10754     1: A
10755        ABXABD
10756     0: ABD
10757     1: B
10758        ** Failers
10759    No match
10760        ABX
10761    No match
10762        BAXBAD
10763    No match
10764    
10765    /(\3)(\1)(a)/<JS>
10766        cat
10767     0: a
10768     1:
10769     2:
10770     3: a
10771    
10772    /(\3)(\1)(a)/SI<JS>
10773    Capturing subpattern count = 3
10774    Max back reference = 3
10775    Options:
10776    No first char
10777    Need char = 'a'
10778    Subject length lower bound = 1
10779    No set of starting bytes
10780        cat
10781     0: a
10782     1:
10783     2:
10784     3: a
10785    
10786    /(\3)(\1)(a)/SI
10787    Capturing subpattern count = 3
10788    Max back reference = 3
10789    No options
10790    No first char
10791    Need char = 'a'
10792    Subject length lower bound = 3
10793    No set of starting bytes
10794        cat
10795    No match
10796    
10797    /i(?(DEFINE)(?<s>a))/SI
10798    Capturing subpattern count = 1
10799    Named capturing subpatterns:
10800      s   1
10801    No options
10802    First char = 'i'
10803    No need char
10804    Subject length lower bound = 1
10805    No set of starting bytes
10806        i
10807     0: i
10808    
10809    /()i(?(1)a)/SI
10810    Capturing subpattern count = 1
10811    No options
10812    No first char
10813    Need char = 'i'
10814    Subject length lower bound = 1
10815    Starting byte set: i
10816        ia
10817     0: ia
10818     1:
10819    
10820    /(?i)a(?-i)b|c/BZ
10821    ------------------------------------------------------------------
10822            Bra
10823         /i a
10824            b
10825            Alt
10826            c
10827            Ket
10828            End
10829    ------------------------------------------------------------------
10830        XabX
10831     0: ab
10832        XAbX
10833     0: Ab
10834        CcC
10835     0: c
10836        ** Failers
10837    No match
10838        XABX
10839    No match
10840    
10841    /(?i)a(?s)b|c/BZ
10842    ------------------------------------------------------------------
10843            Bra
10844         /i ab
10845            Alt
10846         /i c
10847            Ket
10848            End
10849    ------------------------------------------------------------------
10850    
10851    /(?i)a(?s-i)b|c/BZ
10852    ------------------------------------------------------------------
10853            Bra
10854         /i a
10855            b
10856            Alt
10857            c
10858            Ket
10859            End
10860    ------------------------------------------------------------------
10861    
10862    /^(ab(c\1)d|x){2}$/BZ
10863    ------------------------------------------------------------------
10864            Bra
10865            ^
10866            Once
10867            CBra 1
10868            ab
10869            CBra 2
10870            c
10871            \1
10872            Ket
10873            d
10874            Alt
10875            x
10876            Ket
10877            Ket
10878            Once
10879            CBra 1
10880            ab
10881            CBra 2
10882            c
10883            \1
10884            Ket
10885            d
10886            Alt
10887            x
10888            Ket
10889            Ket
10890            $
10891            Ket
10892            End
10893    ------------------------------------------------------------------
10894        xabcxd
10895     0: xabcxd
10896     1: abcxd
10897     2: cx
10898    
10899    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10900    ------------------------------------------------------------------
10901            Bra
10902            ^
10903            Braposzero
10904            SBraPos
10905            Recurse
10906            KetRpos
10907            Cond
10908            Cond def
10909            CBra 1
10910            Any
10911            Ket
10912            Ket
10913            $
10914            Ket
10915            End
10916    ------------------------------------------------------------------
10917    
10918    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10919    ------------------------------------------------------------------
10920            Bra
10921            ^
10922            Brazero
10923            Once
10924            Recurse
10925            KetRmax
10926            Cond
10927            Cond def
10928            CBra 1
10929            Any
10930            Ket
10931            Ket
10932            $
10933            Ket
10934            End
10935    ------------------------------------------------------------------
10936    
10937    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10938         documents that the use of \K in assertions is "not well defined". The
10939         last is here because Perl gives the match as "b" rather than "ab". I
10940         believe this to be a Perl bug. --/
10941    
10942    /(?=a\Kb)ab/
10943        ab
10944     0: b
10945    
10946    /(?!a\Kb)ac/
10947        ac
10948     0: ac
10949    
10950    /^abc(?<=b\Kc)d/
10951        abcd
10952     0: cd
10953    
10954    /^abc(?<!b\Kq)d/
10955        abcd
10956     0: abcd
10957    
10958    /(?>a\Kb)z|(ab)/
10959        ab
10960     0: ab
10961     1: ab
10962    
10963    /----------------------/
10964    
10965    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10966    Failed: recursive call could loop indefinitely at offset 31
10967    
10968    /abc(*MARK:)pqr/
10969    Failed: (*MARK) must have an argument at offset 10
10970    
10971    /abc(*:)pqr/
10972    Failed: (*MARK) must have an argument at offset 6
10973    
10974    /abc(*FAIL:123)xyz/
10975    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10976    
10977    /--- This should, and does, fail. In Perl, it does not, which I think is a
10978         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10979    
10980    /A(*COMMIT)B/+K
10981        ACABX
10982    No match
10983    
10984    /--- These should be different, but in Perl 5.11 are not, which I think
10985         is a bug in Perl. ---/
10986    
10987    /A(*THEN)B|A(*THEN)C/K
10988        AC
10989     0: AC
10990    
10991    /A(*PRUNE)B|A(*PRUNE)C/K
10992        AC
10993    No match
10994    
10995    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10996         PRUNE kills it. Perl behaves differently. ---/
10997    
10998    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10999        AAAC
11000    No match, mark = A
11001    
11002    /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
11003    though PCRE does. ---/
11004    
11005    /^A(*:A)B|^X(*:A)Y/K
11006        ** Failers
11007    No match
11008        XAQQ
11009    No match, mark = A
11010    
11011    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11012    optimizations defeat this. So does the PCRE optimization unless we disable it
11013    with \Y. ---/
11014    
11015    /(*COMMIT)ABC/
11016        ABCDEFG
11017     0: ABC
11018        ** Failers
11019    No match
11020        DEFGABC\Y
11021    No match
11022    
11023    /^(ab (c+(*THEN)cd) | xyz)/x
11024        abcccd
11025    No match
11026    
11027    /^(ab (c+(*PRUNE)cd) | xyz)/x
11028        abcccd
11029    No match
11030    
11031    /^(ab (c+(*FAIL)cd) | xyz)/x
11032        abcccd
11033    No match
11034    
11035    /--- Perl 5.11 gets some of these wrong ---/
11036    
11037    /(?>.(*ACCEPT))*?5/
11038        abcde
11039     0: a
11040    
11041    /(.(*ACCEPT))*?5/
11042        abcde
11043     0: a
11044     1: a
11045    
11046    /(.(*ACCEPT))5/
11047        abcde
11048     0: a
11049     1: a
11050    
11051    /(.(*ACCEPT))*5/
11052        abcde
11053     0: a
11054     1: a
11055    
11056    /A\NB./BZ
11057    ------------------------------------------------------------------
11058            Bra
11059            A
11060            Any
11061            B
11062            Any
11063            Ket
11064            End
11065    ------------------------------------------------------------------
11066        ACBD
11067     0: ACBD
11068        *** Failers
11069    No match
11070        A\nB
11071    No match
11072        ACB\n
11073    No match
11074    
11075    /A\NB./sBZ
11076    ------------------------------------------------------------------
11077            Bra
11078            A
11079            Any
11080            B
11081            AllAny
11082            Ket
11083            End
11084    ------------------------------------------------------------------
11085        ACBD
11086     0: ACBD
11087        ACB\n
11088     0: ACB\x0a
11089        *** Failers
11090    No match
11091        A\nB
11092    No match
11093    
11094    /A\NB/<crlf>
11095        A\nB
11096     0: A\x0aB
11097        A\rB
11098     0: A\x0dB
11099        ** Failers
11100    No match
11101        A\r\nB
11102    No match
11103    
11104    /\R+b/BZ
11105    ------------------------------------------------------------------
11106            Bra
11107            \R++
11108            b
11109            Ket
11110            End
11111    ------------------------------------------------------------------
11112    
11113    /\R+\n/BZ
11114    ------------------------------------------------------------------
11115            Bra
11116            \R+
11117            \x0a
11118            Ket
11119            End
11120    ------------------------------------------------------------------
11121    
11122    /\R+\d/BZ
11123    ------------------------------------------------------------------
11124            Bra
11125            \R++
11126            \d
11127            Ket
11128            End
11129    ------------------------------------------------------------------
11130    
11131    /\d*\R/BZ
11132    ------------------------------------------------------------------
11133            Bra
11134            \d*+
11135            \R
11136            Ket
11137            End
11138    ------------------------------------------------------------------
11139    
11140    /\s*\R/BZ
11141    ------------------------------------------------------------------
11142            Bra
11143            \s*+
11144            \R
11145            Ket
11146            End
11147    ------------------------------------------------------------------
11148    
11149    /-- Perl treats this one differently, not failing the second string. I believe
11150        that is a bug in Perl. --/
11151    
11152    /^((abc|abcx)(*THEN)y|abcd)/
11153        abcd
11154     0: abcd
11155     1: abcd
11156        *** Failers
11157    No match
11158        abcxy
11159    No match
11160    
11161    /(?<=abc)def/
11162        abc\P\P
11163    Partial match: abc
11164    
11165    /abc$/
11166        abc
11167     0: abc
11168        abc\P
11169     0: abc
11170        abc\P\P
11171    Partial match: abc
11172    
11173    /abc$/m
11174        abc
11175     0: abc
11176        abc\n
11177     0: abc
11178        abc\P\P
11179    Partial match: abc
11180        abc\n\P\P
11181     0: abc
11182        abc\P
11183     0: abc
11184        abc\n\P
11185     0: abc
11186    
11187    /abc\z/
11188        abc
11189     0: abc
11190        abc\P
11191     0: abc
11192        abc\P\P
11193    Partial match: 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\b/
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    No match
11214        abc\P
11215    Partial match: abc
11216        abc\P\P
11217    Partial match: abc
11218    
11219    /.+/
11220        abc\>0
11221     0: abc
11222        abc\>1
11223     0: bc
11224        abc\>2
11225     0: c
11226        abc\>3
11227    No match
11228        abc\>4
11229    Error -24 (bad offset value)
11230        abc\>-4
11231    Error -24 (bad offset value)
11232    
11233    /^\cģ/
11234    Failed: \c must be followed by an ASCII character at offset 3
11235    
11236    /(?P<abn>(?P=abn)xxx)/BZ
11237    ------------------------------------------------------------------
11238            Bra
11239            Once
11240            CBra 1
11241            \1
11242            xxx
11243            Ket
11244            Ket
11245            Ket
11246            End
11247    ------------------------------------------------------------------
11248    
11249    /(a\1z)/BZ
11250    ------------------------------------------------------------------
11251            Bra
11252            Once
11253            CBra 1
11254            a
11255            \1
11256            z
11257            Ket
11258            Ket
11259            Ket
11260            End
11261    ------------------------------------------------------------------
11262    
11263    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11264    Failed: syntax error in subpattern name (missing terminator) at offset 29
11265    
11266    /(?P<abn>(?P=axn)xxx)/BZ
11267    Failed: reference to non-existent subpattern at offset 15
11268    
11269    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11270    ------------------------------------------------------------------
11271            Bra
11272            CBra 1
11273            \2
11274            xxx
11275            Ket
11276            CBra 2
11277            yy
11278            Ket
11279            Ket
11280            End
11281    ------------------------------------------------------------------
11282    
11283    /-- These tests are here because Perl gets the first one wrong. --/
11284    
11285    /(\R*)(.)/s
11286        \r\n
11287     0: \x0d
11288     1:
11289     2: \x0d
11290        \r\r\n\n\r
11291     0: \x0d\x0d\x0a\x0a\x0d
11292     1: \x0d\x0d\x0a\x0a
11293     2: \x0d
11294        \r\r\n\n\r\n
11295     0: \x0d\x0d\x0a\x0a\x0d
11296     1: \x0d\x0d\x0a\x0a
11297     2: \x0d
11298    
11299    /(\R)*(.)/s
11300        \r\n
11301     0: \x0d
11302     1: <unset>
11303     2: \x0d
11304        \r\r\n\n\r
11305     0: \x0d\x0d\x0a\x0a\x0d
11306     1: \x0a
11307     2: \x0d
11308        \r\r\n\n\r\n
11309     0: \x0d\x0d\x0a\x0a\x0d
11310     1: \x0a
11311     2: \x0d
11312    
11313    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11314        \r\n
11315     0: \x0d
11316     1:
11317     2: \x0d
11318        \r\r\n\n\r
11319     0: \x0d\x0d\x0a\x0a\x0d
11320     1: \x0d\x0d\x0a\x0a
11321     2: \x0d
11322        \r\r\n\n\r\n
11323     0: \x0d\x0d\x0a\x0a\x0d
11324     1: \x0d\x0d\x0a\x0a
11325     2: \x0d
11326    
11327    /-- --/
11328    
11329    /^abc$/BZ
11330    ------------------------------------------------------------------
11331            Bra
11332            ^
11333            abc
11334            $
11335            Ket
11336            End
11337    ------------------------------------------------------------------
11338    
11339    /^abc$/BZm
11340    ------------------------------------------------------------------
11341            Bra
11342         /m ^
11343            abc
11344         /m $
11345            Ket
11346            End
11347    ------------------------------------------------------------------
11348    
11349    /^(a)*+(\w)/S
11350        aaaaX
11351     0: aaaaX
11352     1: a
11353     2: X
11354        ** Failers
11355    No match
11356        aaaa
11357    No match
11358    
11359    /^(?:a)*+(\w)/S
11360        aaaaX
11361     0: aaaaX
11362     1: X
11363        ** Failers
11364    No match
11365        aaaa
11366    No match
11367    
11368    /(a)++1234/SDZ
11369    ------------------------------------------------------------------
11370            Bra
11371            CBraPos 1
11372            a
11373            KetRpos
11374            1234
11375            Ket
11376            End
11377    ------------------------------------------------------------------
11378    Capturing subpattern count = 1
11379    No options
11380    First char = 'a'
11381    Need char = '4'
11382    Subject length lower bound = 5
11383    No set of starting bytes
11384    
11385    /([abc])++1234/SI
11386    Capturing subpattern count = 1
11387    No options
11388    No first char
11389    Need char = '4'
11390    Subject length lower bound = 5
11391    Starting byte set: a b c
11392    
11393    /(?<=(abc)+)X/
11394    Failed: lookbehind assertion is not fixed length at offset 10
11395    
11396    /(^ab)/I
11397    Capturing subpattern count = 1
11398    Options: anchored
11399    No first char
11400    No need char
11401    
11402    /(^ab)++/I
11403    Capturing subpattern count = 1
11404    Options: anchored
11405    No first char
11406    No need char
11407    
11408    /(^ab|^)+/I
11409    Capturing subpattern count = 1
11410    Options: anchored
11411    No first char
11412    No need char
11413    
11414    /(^ab|^)++/I
11415    Capturing subpattern count = 1
11416    Options: anchored
11417    No first char
11418    No need char
11419    
11420    /(?:^ab)/I
11421    Capturing subpattern count = 0
11422    Options: anchored
11423    No first char
11424    No need char
11425    
11426    /(?:^ab)++/I
11427    Capturing subpattern count = 0
11428    Options: anchored
11429    No first char
11430    No need char
11431    
11432    /(?:^ab|^)+/I
11433    Capturing subpattern count = 0
11434    Options: anchored
11435    No first char
11436    No need char
11437    
11438    /(?:^ab|^)++/I
11439    Capturing subpattern count = 0
11440    Options: anchored
11441    No first char
11442    No need char
11443    
11444    /(.*ab)/I
11445    Capturing subpattern count = 1
11446    No options
11447    First char at start or follows newline
11448    Need char = 'b'
11449    
11450    /(.*ab)++/I
11451    Capturing subpattern count = 1
11452    No options
11453    First char at start or follows newline
11454    Need char = 'b'
11455    
11456    /(.*ab|.*)+/I
11457    Capturing subpattern count = 1
11458    No options
11459    First char at start or follows newline
11460    No need char
11461    
11462    /(.*ab|.*)++/I
11463    Capturing subpattern count = 1
11464    No options
11465    First char at start or follows newline
11466    No need char
11467    
11468    /(?:.*ab)/I
11469    Capturing subpattern count = 0
11470    No options
11471    First char at start or follows newline
11472    Need char = 'b'
11473    
11474    /(?:.*ab)++/I
11475    Capturing subpattern count = 0
11476    No options
11477    First char at start or follows newline
11478    Need char = 'b'
11479    
11480    /(?:.*ab|.*)+/I
11481    Capturing subpattern count = 0
11482    No options
11483    First char at start or follows newline
11484    No need char
11485    
11486    /(?:.*ab|.*)++/I
11487    Capturing subpattern count = 0
11488    No options
11489    First char at start or follows newline
11490    No need char
11491    
11492    /(?=a)[bcd]/I
11493    Capturing subpattern count = 0
11494    No options
11495    First char = 'a'
11496    No need char
11497    
11498    /((?=a))[bcd]/I
11499    Capturing subpattern count = 1
11500    No options
11501    First char = 'a'
11502    No need char
11503    
11504    /((?=a))+[bcd]/I
11505    Capturing subpattern count = 1
11506    No options
11507    First char = 'a'
11508    No need char
11509    
11510    /((?=a))++[bcd]/I
11511    Capturing subpattern count = 1
11512    No options
11513    First char = 'a'
11514    No need char
11515    
11516    /(?=a+)[bcd]/iI
11517    Capturing subpattern count = 0
11518    Options: caseless
11519    First char = 'a' (caseless)
11520    No need char
11521    
11522    /(?=a+?)[bcd]/iI
11523    Capturing subpattern count = 0
11524    Options: caseless
11525    First char = 'a' (caseless)
11526    No need char
11527    
11528    /(?=a++)[bcd]/iI
11529    Capturing subpattern count = 0
11530    Options: caseless
11531    First char = 'a' (caseless)
11532    No need char
11533    
11534    /(?=a{3})[bcd]/iI
11535    Capturing subpattern count = 0
11536    Options: caseless
11537    First char = 'a' (caseless)
11538    Need char = 'a' (caseless)
11539    
11540    /(abc)\1+/S
11541    
11542    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11543    
11544    /(?1)(?:(b(*ACCEPT))){0}/
11545        b
11546     0: b
11547    
11548    /(?1)(?:(b(*ACCEPT))){0}c/
11549        bc
11550     0: bc
11551        ** Failers
11552    No match
11553        b
11554    No match
11555    
11556    /(?1)(?:((*ACCEPT))){0}c/
11557        c
11558     0: c
11559        c\N
11560     0: c
11561    
11562    /^.*?(?(?=a)a|b(*THEN)c)/
11563        ba
11564    No match
11565    
11566    /^.*?(?(?=a)a|bc)/
11567        ba
11568     0: ba
11569    
11570    /^.*?(?(?=a)a(*THEN)b|c)/
11571        ac
11572    No match
11573    
11574    /^.*?(?(?=a)a(*THEN)b)c/
11575        ac
11576    No match
11577    
11578    /^.*?(a(*THEN)b)c/
11579        aabc
11580    No match
11581    
11582    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11583        aabc
11584     0: aabc
11585    
11586    /^.*?(a(*THEN)b|z)c/
11587        aabc
11588     0: aabc
11589     1: ab
11590    
11591    /^.*?(z|a(*THEN)b)c/
11592        aabc
11593     0: aabc
11594     1: ab
11595    
11596    /-- --/
11597    
11598    /-- These studied versions are here because they are not Perl-compatible; the
11599        studying means the mark is not seen. --/
11600    
11601    /(*MARK:A)(*SKIP:B)(C|X)/KS
11602        C
11603     0: C
11604     1: C
11605    MK: A
11606        D
11607    No match, mark = A
11608    
11609    /(*:A)A+(*SKIP:A)(B|Z)/KS
11610        AAAC
11611    No match, mark = A
11612    
11613    /-- --/
11614    
11615    "(?=a*(*ACCEPT)b)c"
11616        c
11617     0: c
11618        c\N
11619     0: c
11620    
11621    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11622        c
11623     0: c
11624        c\N
11625     0: c
11626    
11627    /(?>(*ACCEPT)b)c/
11628        c
11629     0:
11630        c\N
11631    No match
11632    
11633    /(?:(?>(a)))+a%/++
11634        %aa%
11635     0: aa%
11636     0+
11637     1: a
11638     1+ a%
11639    
11640    /(a)b|ac/++SS
11641        ac\O3
11642    Matched, but too many substrings
11643     0: ac
11644     0+
11645    
11646    /(a)(b)x|abc/++
11647         abc\O6
11648     0: abc
11649     0+
11650    
11651    /(a)bc|(a)(b)\2/
11652        \O3abc
11653    Matched, but too many substrings
11654     0: abc
11655        \O4abc
11656    Matched, but too many substrings
11657     0: abc
11658    
11659    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11660    Capturing subpattern count = 2
11661    No options
11662    No first char
11663    No need char
11664    Subject length lower bound = 1
11665    No set of starting bytes
11666    
11667    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11668    Capturing subpattern count = 2
11669    No options
11670    No first char
11671    No need char
11672    Subject length lower bound = 3
11673    Starting byte set: a b
11674    
11675    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11676    Capturing subpattern count = 2
11677    No options
11678    No first char
11679    No need char
11680    Subject length lower bound = 4
11681    Starting byte set: a b
11682    
11683    /(abc)(?1)/SI
11684    Capturing subpattern count = 1
11685    No options
11686    First char = 'a'
11687    Need char = 'c'
11688    Subject length lower bound = 6
11689    No set of starting bytes
11690    
11691    /^(?>a)++/
11692        aa\M
11693    Minimum match() limit = 5
11694    Minimum match() recursion limit = 2
11695     0: aa
11696        aaaaaaaaa\M
11697    Minimum match() limit = 12
11698    Minimum match() recursion limit = 2
11699     0: aaaaaaaaa
11700    
11701    /(a)(?1)++/
11702        aa\M
11703    Minimum match() limit = 7
11704    Minimum match() recursion limit = 4
11705     0: aa
11706     1: a
11707        aaaaaaaaa\M
11708    Minimum match() limit = 21
11709    Minimum match() recursion limit = 4
11710     0: aaaaaaaaa
11711     1: a
11712    
11713    /(?:(foo)|(bar)|(baz))X/SS=
11714        bazfooX
11715     0: fooX
11716     1: foo
11717     2: <unset>
11718     3: <unset>
11719        foobazbarX
11720     0: barX
11721     1: <unset>
11722     2: bar
11723     3: <unset>
11724        barfooX
11725     0: fooX
11726     1: foo
11727     2: <unset>
11728     3: <unset>
11729        bazX
11730     0: bazX
11731     1: <unset>
11732     2: <unset>
11733     3: baz
11734        foobarbazX
11735     0: bazX
11736     1: <unset>
11737     2: <unset>
11738     3: baz
11739        bazfooX\O0
11740    Matched, but too many substrings
11741        bazfooX\O2
11742    Matched, but too many substrings
11743     0: fooX
11744        bazfooX\O4
11745    Matched, but too many substrings
11746     0: fooX
11747     1: <unset>
11748        bazfooX\O6
11749    Matched, but too many substrings
11750     0: fooX
11751     1: foo
11752     2: <unset>
11753        bazfooX\O8
11754    Matched, but too many substrings
11755     0: fooX
11756     1: foo
11757     2: <unset>
11758     3: <unset>
11759        bazfooX\O10
11760     0: fooX
11761     1: foo
11762     2: <unset>
11763     3: <unset>
11764    
11765    /(?=abc){3}abc/BZ
11766    ------------------------------------------------------------------
11767            Bra
11768            Assert
11769            abc
11770            Ket
11771            abc
11772            Ket
11773            End
11774    ------------------------------------------------------------------
11775    
11776    /(?=abc)+abc/BZ
11777    ------------------------------------------------------------------
11778            Bra
11779            Assert
11780            abc
11781            Ket
11782            abc
11783            Ket
11784            End
11785    ------------------------------------------------------------------
11786    
11787    /(?=abc)++abc/BZ
11788    ------------------------------------------------------------------
11789            Bra
11790            Assert
11791            abc
11792            Ket
11793            abc
11794            Ket
11795            End
11796    ------------------------------------------------------------------
11797    
11798    /(?=abc){0}xyz/BZ
11799    ------------------------------------------------------------------
11800            Bra
11801            Skip zero
11802            Assert
11803            abc
11804            Ket
11805            xyz
11806            Ket
11807            End
11808    ------------------------------------------------------------------
11809    
11810    /(?=(a))?./BZ
11811    ------------------------------------------------------------------
11812            Bra
11813            Brazero
11814            Assert
11815            CBra 1
11816            a
11817            Ket
11818            Ket
11819            Any
11820            Ket
11821            End
11822    ------------------------------------------------------------------
11823    
11824    /(?=(a))??./BZ
11825    ------------------------------------------------------------------
11826            Bra
11827            Braminzero
11828            Assert
11829            CBra 1
11830            a
11831            Ket
11832            Ket
11833            Any
11834            Ket
11835            End
11836    ------------------------------------------------------------------
11837    
11838    /^(?=(a)){0}b(?1)/BZ
11839    ------------------------------------------------------------------
11840            Bra
11841            ^
11842            Skip zero
11843            Assert
11844            CBra 1
11845            a
11846            Ket
11847            Ket
11848            b
11849            Recurse
11850            Ket
11851            End
11852    ------------------------------------------------------------------
11853    
11854    /(?(DEFINE)(a))?b(?1)/BZ
11855    ------------------------------------------------------------------
11856            Bra
11857            Cond
11858            Cond def
11859            CBra 1
11860            a
11861            Ket
11862            Ket
11863            b
11864            Recurse
11865            Ket
11866            End
11867    ------------------------------------------------------------------
11868    
11869    /^(?=(?1))?[az]([abc])d/BZ
11870    ------------------------------------------------------------------
11871            Bra
11872            ^
11873            Brazero
11874            Assert
11875            Recurse
11876            Ket
11877            [az]
11878            CBra 1
11879            [a-c]
11880            Ket
11881            d
11882            Ket
11883            End
11884    ------------------------------------------------------------------
11885    
11886    /^(?!a){0}\w+/BZ
11887    ------------------------------------------------------------------
11888            Bra
11889            ^
11890            Skip zero
11891            Assert not
11892            a
11893            Ket
11894            \w+
11895            Ket
11896            End
11897    ------------------------------------------------------------------
11898    
11899    /(?<=(abc))?xyz/BZ
11900    ------------------------------------------------------------------
11901            Bra
11902            Brazero
11903            AssertB
11904            Reverse
11905            CBra 1
11906            abc
11907            Ket
11908            Ket
11909            xyz
11910            Ket
11911            End
11912    ------------------------------------------------------------------
11913    
11914    /[:a[:abc]b:]/BZ
11915    ------------------------------------------------------------------
11916            Bra
11917            [:[a-c]
11918            b:]
11919            Ket
11920            End
11921    ------------------------------------------------------------------
11922    
11923    /((?2))((?1))/SS
11924        abc
11925    Error -26 (nested recursion at the same subject position)
11926    
11927    /((?(R2)a+|(?1)b))/SS
11928        aaaabcde
11929    Error -26 (nested recursion at the same subject position)
11930    
11931    /(?(R)a*(?1)|((?R))b)/SS
11932        aaaabcde
11933    Error -26 (nested recursion at the same subject position)
11934    
11935    /(a+|(?R)b)/
11936    Failed: recursive call could loop indefinitely at offset 7
11937    
11938    /^(a(*:A)(d|e(*:B))z|aeq)/C
11939        adz
11940    --->adz
11941     +0 ^       ^
11942     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11943     +2 ^       a
11944     +3 ^^      (*:A)
11945     +8 ^^      (d|e(*:B))
11946    Latest Mark: A
11947     +9 ^^      d
11948    +10 ^ ^     |
11949    +18 ^ ^     z
11950    +19 ^  ^    |
11951    +24 ^  ^
11952     0: adz
11953     1: adz
11954     2: d
11955        aez
11956    --->aez
11957     +0 ^       ^
11958     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11959     +2 ^       a
11960     +3 ^^      (*:A)
11961     +8 ^^      (d|e(*:B))
11962    Latest Mark: A
11963     +9 ^^      d
11964    +11 ^^      e
11965    +12 ^ ^     (*:B)
11966    +17 ^ ^     )
11967    Latest Mark: B
11968    +18 ^ ^     z
11969    +19 ^  ^    |
11970    +24 ^  ^
11971     0: aez
11972     1: aez
11973     2: e
11974        aeqwerty
11975    --->aeqwerty
11976     +0 ^            ^
11977     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11978     +2 ^            a
11979     +3 ^^           (*:A)
11980     +8 ^^           (d|e(*:B))
11981    Latest Mark: A
11982     +9 ^^           d
11983    +11 ^^           e
11984    +12 ^ ^          (*:B)
11985    +17 ^ ^          )
11986    Latest Mark: B
11987    +18 ^ ^          z
11988    +20 ^            a
11989    +21 ^^           e
11990    +22 ^ ^          q
11991    +23 ^  ^         )
11992    +24 ^  ^
11993     0: aeq
11994     1: aeq
11995    
11996    /.(*F)/
11997        \P\Pabc
11998    No match
11999    
12000    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12001    Capturing subpattern count = 0
12002    No options
12003    First char = 't'
12004    Need char = 't'
12005    Subject length lower bound = 18
12006    No set of starting bytes
12007    
12008    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12009    Capturing subpattern count = 0
12010    No options
12011    No first char
12012    No need char
12013    Subject length lower bound = 8
12014    Starting byte set: < o t u
12015    
12016    /a(*SKIP)c|b(*ACCEPT)|/+SI
12017    Capturing subpattern count = 0
12018    No options
12019    No first char
12020    No need char
12021    Study returned NULL
12022        a
12023     0:
12024     0+
12025    
12026    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
12027    Capturing subpattern count = 0
12028    No options
12029    No first char
12030    No need char
12031    Subject length lower bound = -1
12032    Starting byte set: a b x
12033        ax
12034     0: x
12035    
12036    'a*(*ACCEPT)b'+
12037        \N\N
12038    No match
12039        abc\N\N
12040     0: a
12041     0+ bc
12042        bbb\N\N
12043     0:
12044     0+ bb
12045    
12046    /(*ACCEPT)a/+I
12047    Capturing subpattern count = 0
12048    No options
12049    No first char
12050    No need char
12051        bax
12052     0:
12053     0+ bax
12054    
12055    /z(*ACCEPT)a/+I
12056    Capturing subpattern count = 0
12057    No options
12058    First char = 'z'
12059    No need char
12060        baxzbx
12061     0: z
12062     0+ bx
12063    
12064    /a(?:.)*?a/ims
12065        \Mabbbbbbbbbbbbbbbbbbbbba
12066    Minimum match() limit = 65
12067    Minimum match() recursion limit = 2
12068     0: abbbbbbbbbbbbbbbbbbbbba
12069    
12070    /a(?:.(*THEN))*?a/ims
12071        \Mabbbbbbbbbbbbbbbbbbbbba
12072    Minimum match() limit = 86
12073    Minimum match() recursion limit = 45
12074     0: abbbbbbbbbbbbbbbbbbbbba
12075    
12076    /a(?:.(*THEN:ABC))*?a/ims
12077        \Mabbbbbbbbbbbbbbbbbbbbba
12078    Minimum match() limit = 86
12079    Minimum match() recursion limit = 45
12080     0: abbbbbbbbbbbbbbbbbbbbba
12081    
12082    /-- These tests are in agreement with development Perl 5.015, which has fixed
12083        some things, but they don't all work with 5.012, so they aren't in the
12084        Perl-compatible tests. Those after the first come from Perl's own test
12085        files. --/
12086    
12087    /^((yes|no)(*THEN)(*F))?/
12088      yes
12089    No match
12090    
12091    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
12092    AbcdCBefgBhiBqz
12093    No match
12094    
12095    /(A (.*)   C? (*THEN)  | A D) z/x
12096    AbcdCBefgBhiBqz
12097    No match
12098    
12099    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
12100    AbcdCBefgBhiBqz
12101    No match
12102    
12103    /(A (.*)   C? (*THEN)  | A D) \s* z/x
12104    AbcdCBefgBhiBqz
12105    No match
12106    
12107    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
12108    AbcdCBefgBhiBqz
12109    No match
12110    
12111    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
12112    AbcdCBefgBhiBqz
12113    No match
12114    
12115    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
12116    AbcdCBefgBhiBqz
12117    No match
12118    
12119    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
12120    AbcdCBefgBhiBqz
12121    No match
12122    
12123    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
12124    AbcdCEBefgBhiBqz
12125    No match
12126    
12127    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
12128    AbcdCEBefgBhiBqz
12129    No match
12130    
12131    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
12132    AbcdCBefgBhiBqz
12133    No match
12134    
12135    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
12136    AbcdCBefgBhiBqz
12137    No match
12138    
12139    /-----------------------------------------------/
12140    
12141    /^(?>a+)(?>(z+))\w/BZ
12142    ------------------------------------------------------------------
12143            Bra
12144            ^
12145            Once_NC
12146            a+
12147            Ket
12148            Once
12149            CBra 1
12150            z+
12151            Ket
12152            Ket
12153            \w
12154            Ket
12155            End
12156    ------------------------------------------------------------------
12157        aaaazzzzb
12158     0: aaaazzzzb
12159     1: zzzz
12160        ** Failers
12161    No match
12162        aazz
12163    No match
12164    
12165    /(.)(\1|a(?2))/
12166        bab
12167     0: bab
12168     1: b
12169     2: ab
12170    
12171    /\1|(.)(?R)\1/
12172        cbbbc
12173     0: cbbbc
12174     1: c
12175    
12176    /(.)((?(1)c|a)|a(?2))/
12177        baa
12178    No match
12179    
12180    /(?P<abn>(?P=abn)xxx)/BZ
12181    ------------------------------------------------------------------
12182            Bra
12183            Once
12184            CBra 1
12185            \1
12186            xxx
12187            Ket
12188            Ket
12189            Ket
12190            End
12191    ------------------------------------------------------------------
12192    
12193    /(a\1z)/BZ
12194    ------------------------------------------------------------------
12195            Bra
12196            Once
12197            CBra 1
12198            a
12199            \1
12200            z
12201            Ket
12202            Ket
12203            Ket
12204            End
12205    ------------------------------------------------------------------
12206    
12207    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
12208         \Maabbccddee
12209    Minimum match() limit = 12
12210    Minimum match() recursion limit = 3
12211     0: aabbccddee
12212    
12213    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
12214         \Maabbccddee
12215    Minimum match() limit = 22
12216    Minimum match() recursion limit = 21
12217     0: aabbccddee
12218     1: aa
12219     2: bb
12220     3: cc
12221     4: dd
12222     5: ee
12223    
12224    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
12225         \Maabbccddee
12226    Minimum match() limit = 18
12227    Minimum match() recursion limit = 13
12228     0: aabbccddee
12229     1: aa
12230     2: cc
12231     3: ee
12232    
12233    /^a\x41z/<JS>
12234        aAz
12235     0: aAz
12236        *** Failers
12237    No match
12238        ax41z
12239    No match
12240    
12241    /^a[m\x41]z/<JS>
12242        aAz
12243     0: aAz
12244    
12245    /^a\x1z/<JS>
12246        ax1z
12247     0: ax1z
12248    
12249    /^a\u0041z/<JS>
12250        aAz
12251     0: aAz
12252        *** Failers
12253    No match
12254        au0041z
12255    No match
12256    
12257    /^a[m\u0041]z/<JS>
12258        aAz
12259     0: aAz
12260    
12261    /^a\u041z/<JS>
12262        au041z
12263     0: au041z
12264        *** Failers
12265    No match
12266        aAz
12267    No match
12268    
12269    /^a\U0041z/<JS>
12270        aU0041z
12271     0: aU0041z
12272        *** Failers
12273    No match
12274        aAz
12275    No match
12276    
12277    /(?(?=c)c|d)++Y/BZ
12278    ------------------------------------------------------------------
12279            Bra
12280            BraPos
12281            Cond
12282            Assert
12283            c
12284            Ket
12285            c
12286            Alt
12287            d
12288            Ket
12289            KetRpos
12290            Y
12291            Ket
12292            End
12293    ------------------------------------------------------------------
12294    
12295    /(?(?=c)c|d)*+Y/BZ
12296    ------------------------------------------------------------------
12297            Bra
12298            Braposzero
12299            BraPos
12300            Cond
12301            Assert
12302            c
12303            Ket
12304            c
12305            Alt
12306            d
12307            Ket
12308            KetRpos
12309            Y
12310            Ket
12311            End
12312    ------------------------------------------------------------------
12313    
12314    /a[\NB]c/
12315    Failed: \N is not supported in a class at offset 3
12316    
12317    /a[B-\Nc]/
12318    Failed: \N is not supported in a class at offset 5
12319    
12320    /(a)(?2){0,1999}?(b)/
12321    Failed: too many forward references at offset 15
12322    
12323    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12324    
12325    /--- This test, with something more complicated than individual letters, causes
12326    different behaviour in Perl. Perhaps it disables some optimization; no tag is
12327    passed back for the failures, whereas in PCRE there is a tag. ---/
12328    
12329    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12330        AABC
12331     0: AB
12332     1: A
12333     2: B
12334    MK: A
12335        XXYZ
12336     0: XXY
12337     1: <unset>
12338     2: <unset>
12339     3: X
12340     4: X
12341     5: Y
12342    MK: B
12343        ** Failers
12344    No match
12345        XAQQ
12346    No match, mark = A
12347        XAQQXZZ
12348    No match, mark = A
12349        AXQQQ
12350    No match, mark = A
12351        AXXQQQ
12352    No match, mark = B
12353    
12354    /-- Perl doesn't give marks for these, though it does if the alternatives are
12355    replaced by single letters. --/
12356    
12357    /(b|q)(*:m)f|a(*:n)w/K
12358        aw
12359     0: aw
12360    MK: n
12361        ** Failers
12362    No match, mark = n
12363        abc
12364    No match, mark = m
12365    
12366    /(q|b)(*:m)f|a(*:n)w/K
12367        aw
12368     0: aw
12369    MK: n
12370        ** Failers
12371    No match, mark = n
12372        abc
12373    No match, mark = m
12374    
12375    /-- After a partial match, the behaviour is as for a failure. --/
12376    
12377    /^a(*:X)bcde/K
12378       abc\P
12379    Partial match, mark=X: abc
12380    
12381  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.454  
changed lines
  Added in v.771

  ViewVC Help
Powered by ViewVC 1.1.5