/[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 500 by ph10, Sat Mar 6 19:00:29 2010 UTC revision 609 by ph10, Wed Jun 15 18:09:23 2011 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug. --/
7    
8  /-- Originally, the Perl 5.10 things were in here too, but now I have separated  /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9      many (most?) of them out into test 11. However, there may still be some      separated many (most?) of them out into test 11. However, there may still
10      that were overlooked. --/      be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 602  Need char = 'h' (caseless) Line 632  Need char = 'h' (caseless)
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633          Bra          Bra
634          CBra 1          CBra 1
635       01 Opt       /i b
      NC b  
636          Ket          Ket
      00 Opt  
637          Ket          Ket
638          End          End
639  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1217  No need char Line 1245  No need char
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246          Bra          Bra
1247          Bra          Bra
      04 Opt  
1248          AllAny*          AllAny*
1249          X          X
1250          Alt          Alt
      04 Opt  
1251          ^          ^
1252          B          B
1253          Ket          Ket
      00 Opt  
1254          Ket          Ket
1255          End          End
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2734  No need char Line 2759  No need char
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760          Bra          Bra
2761          a          a
2762       01 Opt       /i b
      NC b  
2763          Ket          Ket
2764          End          End
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2781  No match
2781          Bra          Bra
2782          CBra 1          CBra 1
2783          a          a
2784       01 Opt       /i b
      NC b  
2785          Ket          Ket
      00 Opt  
2786          Ket          Ket
2787          End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2804  No match
2804  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806          Bra          Bra
2807       NC abc       /i abc
2808          Ket          Ket
2809          End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2817  Need char = 'c' (caseless)
2817    (?i)abc/IxDZ    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819          Bra          Bra
2820       NC abc       /i abc
2821          Ket          Ket
2822          End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2968  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3198  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3219    
3220  /\l/I  /\l/I
3221  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3222    
3223  /\L/I  /\L/I
3224  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225    
3226  /\N{name}/I  /\N{name}/I
3227  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228    
3229  /\u/I  /\u/I
3230  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231    
3232  /\U/I  /\U/I
3233  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 4394  No first char Line 4414  No first char
4414  Need char = 'z'  Need char = 'z'
4415    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4416  Minimum match() limit = 8  Minimum match() limit = 8
4417  Minimum match() recursion limit = 6  Minimum match() recursion limit = 7
4418   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4419   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4420    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4421  Minimum match() limit = 32768  Minimum match() limit = 32768
4422  Minimum match() recursion limit = 42  Minimum match() recursion limit = 43
4423  No match  No match
4424    
4425  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 6391  No first char Line 6411  No first char
6411  No need char  No need char
6412     /* this is a C style comment */\M     /* this is a C style comment */\M
6413  Minimum match() limit = 120  Minimum match() limit = 120
6414  Minimum match() recursion limit = 6  Minimum match() recursion limit = 35
6415   0: /* this is a C style comment */   0: /* this is a C style comment */
6416   1: /* this is a C style comment */   1: /* this is a C style comment */
6417    
# Line 6644  No match Line 6664  No match
6664  ------------------------------------------------------------------  ------------------------------------------------------------------
6665          Bra          Bra
6666          ^          ^
6667          a*       /i a*
6668       NC A       /i A
6669          \d          \d
6670          Ket          Ket
6671          End          End
# Line 7273  Matched, but too many substrings Line 7293  Matched, but too many substrings
7293  /[^a]+a/BZi  /[^a]+a/BZi
7294  ------------------------------------------------------------------  ------------------------------------------------------------------
7295          Bra          Bra
7296          [^A]++       /i [^A]++
7297       NC a       /i a
7298          Ket          Ket
7299          End          End
7300  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7302  Matched, but too many substrings
7302  /[^a]+A/BZi  /[^a]+A/BZi
7303  ------------------------------------------------------------------  ------------------------------------------------------------------
7304          Bra          Bra
7305          [^A]++       /i [^A]++
7306       NC A       /i A
7307          Ket          Ket
7308          End          End
7309  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 8667  No match Line 8687  No match
8687  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8688  No match  No match
8689    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8690  /a(*MARK)b/  /a(*MARK)b/
8691  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8692    
8693  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8694  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8760  No match Line 8777  No match
8777  No match  No match
8778      a\x85b      a\x85b
8779  No match  No match
8780    
8781    /(*ANY).*/g
8782        abc\r\ndef
8783     0: abc
8784     0:
8785     0: def
8786     0:
8787    
8788    /(*ANYCRLF).*/g
8789        abc\r\ndef
8790     0: abc
8791     0:
8792     0: def
8793     0:
8794    
8795    /(*CRLF).*/g
8796        abc\r\ndef
8797     0: abc
8798     0:
8799     0: def
8800     0:
8801    
8802  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8803  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9246  No match Line 9284  No match
9284   +0        ^     x   +0        ^     x
9285   +0         ^    x   +0         ^    x
9286  No match  No match
9287    
9288    /(*NO_START_OPT)xyz/C
9289      abcxyz
9290    --->abcxyz
9291    +15 ^          x
9292    +15  ^         x
9293    +15   ^        x
9294    +15    ^       x
9295    +16    ^^      y
9296    +17    ^ ^     z
9297    +18    ^  ^
9298     0: xyz
9299    
9300    /xyz/CY
9301      abcxyz
9302    --->abcxyz
9303     +0 ^          x
9304     +0  ^         x
9305     +0   ^        x
9306     +0    ^       x
9307     +1    ^^      y
9308     +2    ^ ^     z
9309     +3    ^  ^
9310     0: xyz
9311    
9312  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9313      "ab"      "ab"
# Line 10432  Partial match: abca Line 10494  Partial match: abca
10494      xxxxabcde\P\P      xxxxabcde\P\P
10495  Partial match: abcde  Partial match: abcde
10496    
10497  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10498      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10499      (*COMMIT). --/      hitting (*COMMIT). --/
10500    
10501  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10502      ABD      ABD
# Line 10514  Starting byte set: i Line 10576  Starting byte set: i
10576  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10577  ------------------------------------------------------------------  ------------------------------------------------------------------
10578          Bra          Bra
10579       NC a       /i a
      00 Opt  
10580          b          b
10581          Alt          Alt
      00 Opt  
10582          c          c
10583          Ket          Ket
10584          End          End
# Line 10537  No match Line 10597  No match
10597  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10598  ------------------------------------------------------------------  ------------------------------------------------------------------
10599          Bra          Bra
10600       NC a       /i ab
      05 Opt  
      NC b  
10601          Alt          Alt
10602       05 Opt       /i c
      NC c  
10603          Ket          Ket
10604          End          End
10605  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10550  No match Line 10607  No match
10607  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10608  ------------------------------------------------------------------  ------------------------------------------------------------------
10609          Bra          Bra
10610       NC a       /i a
      04 Opt  
10611          b          b
10612          Alt          Alt
      04 Opt  
10613          c          c
10614          Ket          Ket
10615          End          End
# Line 10637  No match Line 10692  No match
10692          End          End
10693  ------------------------------------------------------------------  ------------------------------------------------------------------
10694    
10695  / -- The first four of these are not in the Perl 5.10 test because Perl  / -- The first four of these are not in the Perl >= 5.10 test because Perl
10696       documents that the use of \K in assertions is "not well defined". The       documents that the use of \K in assertions is "not well defined". The
10697       last is here because Perl gives the match as "b" rather than "ab". I       last is here because Perl gives the match as "b" rather than "ab". I
10698       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
# Line 10665  No match Line 10720  No match
10720    
10721  /----------------------/  /----------------------/
10722    
10723    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10724    Failed: recursive call could loop indefinitely at offset 31
10725    
10726    /abc(*MARK:)pqr/
10727    Failed: (*MARK) must have an argument at offset 10
10728    
10729    /abc(*:)pqr/
10730    Failed: (*MARK) must have an argument at offset 6
10731    
10732    /abc(*FAIL:123)xyz/
10733    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10734    
10735    /--- This should, and does, fail. In Perl, it does not, which I think is a
10736         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10737    
10738    /A(*COMMIT)B/+K
10739        ACABX
10740    No match
10741    
10742    /--- These should be different, but in Perl 5.11 are not, which I think
10743         is a bug in Perl. ---/
10744    
10745    /A(*THEN)B|A(*THEN)C/K
10746        AC
10747     0: AC
10748    
10749    /A(*PRUNE)B|A(*PRUNE)C/K
10750        AC
10751    No match
10752    
10753    /--- A whole lot of tests of verbs with arguments are here rather than in test
10754         11 because Perl doesn't seem to follow its specification entirely
10755         correctly. ---/
10756    
10757    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10758         not clear how Perl defines "involved in the failure of the match". ---/
10759    
10760    /^(A(*THEN:A)B|C(*THEN:B)D)/K
10761        AB
10762     0: AB
10763     1: AB
10764        CD
10765     0: CD
10766     1: CD
10767        ** Failers
10768    No match
10769        AC
10770    No match
10771        CB
10772    No match, mark = B
10773    
10774    /--- Check the use of names for success and failure. PCRE doesn't show these
10775    names for success, though Perl does, contrary to its spec. ---/
10776    
10777    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
10778        AB
10779     0: AB
10780     1: AB
10781        CD
10782     0: CD
10783     1: CD
10784        ** Failers
10785    No match
10786        AC
10787    No match, mark = A
10788        CB
10789    No match, mark = B
10790    
10791    /--- An empty name does not pass back an empty string. It is the same as if no
10792    name were given. ---/
10793    
10794    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
10795        AB
10796     0: AB
10797     1: AB
10798        CD
10799     0: CD
10800     1: CD
10801    
10802    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
10803    
10804    /A(*PRUNE:A)B/K
10805        ACAB
10806     0: AB
10807    
10808    /(*MARK:A)(*PRUNE:B)(C|X)/K
10809        C
10810     0: C
10811     1: C
10812    MK: A
10813        D
10814    No match, mark = B
10815    
10816    /(*MARK:A)(*THEN:B)(C|X)/K
10817        C
10818     0: C
10819     1: C
10820    MK: A
10821        D
10822    No match, mark = B
10823    
10824    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
10825    
10826    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
10827        AAAC
10828    No match
10829    
10830    /--- Same --/
10831    
10832    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
10833        AAAC
10834    No match
10835    
10836    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10837         PRUNE kills it. ---/
10838    
10839    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10840        AAAC
10841    No match
10842    
10843    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
10844        AAAC
10845    No match
10846    
10847    /--- This should fail, as a null name is the same as no name ---/
10848    
10849    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
10850        AAAC
10851    No match
10852    
10853    /--- This fails in PCRE, and I think that is in accordance with Perl's
10854         documentation, though in Perl it succeeds. ---/
10855    
10856    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
10857        AAAC
10858    No match
10859    
10860    /--- Mark names can be duplicated ---/
10861    
10862    /A(*:A)B|X(*:A)Y/K
10863        AABC
10864     0: AB
10865    MK: A
10866        XXYZ
10867     0: XY
10868    MK: A
10869    
10870    /^A(*:A)B|^X(*:A)Y/K
10871        ** Failers
10872    No match
10873        XAQQ
10874    No match, mark = A
10875    
10876    /--- A check on what happens after hitting a mark and them bumping along to
10877    something that does not even start. Perl reports tags after the failures here,
10878    though it does not when the individual letters are made into something
10879    more complicated. ---/
10880    
10881    /A(*:A)B|XX(*:B)Y/K
10882        AABC
10883     0: AB
10884    MK: A
10885        XXYZ
10886     0: XXY
10887    MK: B
10888        ** Failers
10889    No match
10890        XAQQ
10891    No match
10892        XAQQXZZ
10893    No match
10894        AXQQQ
10895    No match
10896        AXXQQQ
10897    No match
10898    
10899    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10900    optimizations defeat this. So does the PCRE optimization unless we disable it
10901    with \Y. ---/
10902    
10903    /(*COMMIT)ABC/
10904        ABCDEFG
10905     0: ABC
10906        ** Failers
10907    No match
10908        DEFGABC\Y
10909    No match
10910    
10911    /--- Repeat some tests with added studying. ---/
10912    
10913    /A(*COMMIT)B/+KS
10914        ACABX
10915    No match
10916    
10917    /A(*THEN)B|A(*THEN)C/KS
10918        AC
10919     0: AC
10920    
10921    /A(*PRUNE)B|A(*PRUNE)C/KS
10922        AC
10923    No match
10924    
10925    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
10926        AB
10927     0: AB
10928     1: AB
10929        CD
10930     0: CD
10931     1: CD
10932        ** Failers
10933    No match
10934        AC
10935    No match
10936        CB
10937    No match, mark = B
10938    
10939    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
10940        AB
10941     0: AB
10942     1: AB
10943        CD
10944     0: CD
10945     1: CD
10946        ** Failers
10947    No match
10948        AC
10949    No match, mark = A
10950        CB
10951    No match, mark = B
10952    
10953    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
10954        AB
10955     0: AB
10956     1: AB
10957        CD
10958     0: CD
10959     1: CD
10960    
10961    /A(*PRUNE:A)B/KS
10962        ACAB
10963     0: AB
10964    
10965    /(*MARK:A)(*PRUNE:B)(C|X)/KS
10966        C
10967     0: C
10968     1: C
10969    MK: A
10970        D
10971    No match
10972    
10973    /(*MARK:A)(*THEN:B)(C|X)/KS
10974        C
10975     0: C
10976     1: C
10977    MK: A
10978        D
10979    No match
10980    
10981    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
10982        AAAC
10983    No match
10984    
10985    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
10986        AAAC
10987    No match
10988    
10989    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
10990        AAAC
10991    No match
10992    
10993    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
10994        AAAC
10995    No match
10996    
10997    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
10998        AAAC
10999    No match
11000    
11001    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11002        AAAC
11003    No match
11004    
11005    /A(*:A)B|XX(*:B)Y/KS
11006        AABC
11007     0: AB
11008    MK: A
11009        XXYZ
11010     0: XXY
11011    MK: B
11012        ** Failers
11013    No match
11014        XAQQ
11015    No match
11016        XAQQXZZ
11017    No match
11018        AXQQQ
11019    No match
11020        AXXQQQ
11021    No match
11022    
11023    /(*COMMIT)ABC/
11024        ABCDEFG
11025     0: ABC
11026        ** Failers
11027    No match
11028        DEFGABC\Y
11029    No match
11030    
11031    /^(ab (c+(*THEN)cd) | xyz)/x
11032        abcccd
11033    No match
11034    
11035    /^(ab (c+(*PRUNE)cd) | xyz)/x
11036        abcccd
11037    No match
11038    
11039    /^(ab (c+(*FAIL)cd) | xyz)/x
11040        abcccd
11041    No match
11042    
11043    /--- Perl 5.11 gets some of these wrong ---/
11044    
11045    /(?>.(*ACCEPT))*?5/
11046        abcde
11047     0: a
11048    
11049    /(.(*ACCEPT))*?5/
11050        abcde
11051     0: a
11052     1: a
11053    
11054    /(.(*ACCEPT))5/
11055        abcde
11056     0: a
11057     1: a
11058    
11059    /(.(*ACCEPT))*5/
11060        abcde
11061     0: a
11062     1: a
11063    
11064    /A\NB./BZ
11065    ------------------------------------------------------------------
11066            Bra
11067            A
11068            Any
11069            B
11070            Any
11071            Ket
11072            End
11073    ------------------------------------------------------------------
11074        ACBD
11075     0: ACBD
11076        *** Failers
11077    No match
11078        A\nB
11079    No match
11080        ACB\n
11081    No match
11082    
11083    /A\NB./sBZ
11084    ------------------------------------------------------------------
11085            Bra
11086            A
11087            Any
11088            B
11089            AllAny
11090            Ket
11091            End
11092    ------------------------------------------------------------------
11093        ACBD
11094     0: ACBD
11095        ACB\n
11096     0: ACB\x0a
11097        *** Failers
11098    No match
11099        A\nB
11100    No match
11101    
11102    /A\NB/<crlf>
11103        A\nB
11104     0: A\x0aB
11105        A\rB
11106     0: A\x0dB
11107        ** Failers
11108    No match
11109        A\r\nB
11110    No match
11111    
11112    /\R+b/BZ
11113    ------------------------------------------------------------------
11114            Bra
11115            \R++
11116            b
11117            Ket
11118            End
11119    ------------------------------------------------------------------
11120    
11121    /\R+\n/BZ
11122    ------------------------------------------------------------------
11123            Bra
11124            \R+
11125            \x0a
11126            Ket
11127            End
11128    ------------------------------------------------------------------
11129    
11130    /\R+\d/BZ
11131    ------------------------------------------------------------------
11132            Bra
11133            \R++
11134            \d
11135            Ket
11136            End
11137    ------------------------------------------------------------------
11138    
11139    /\d*\R/BZ
11140    ------------------------------------------------------------------
11141            Bra
11142            \d*+
11143            \R
11144            Ket
11145            End
11146    ------------------------------------------------------------------
11147    
11148    /\s*\R/BZ
11149    ------------------------------------------------------------------
11150            Bra
11151            \s*+
11152            \R
11153            Ket
11154            End
11155    ------------------------------------------------------------------
11156    
11157    /-- Perl treats this one differently, not failing the second string. I believe
11158        that is a bug in Perl. --/
11159    
11160    /^((abc|abcx)(*THEN)y|abcd)/
11161        abcd
11162     0: abcd
11163     1: abcd
11164        *** Failers
11165    No match
11166        abcxy
11167    No match
11168    
11169    /(?<=abc)def/
11170        abc\P\P
11171    Partial match: abc
11172    
11173    /abc$/
11174        abc
11175     0: abc
11176        abc\P
11177     0: abc
11178        abc\P\P
11179    Partial match: abc
11180    
11181    /abc$/m
11182        abc
11183     0: abc
11184        abc\n
11185     0: abc
11186        abc\P\P
11187    Partial match: abc
11188        abc\n\P\P
11189     0: abc
11190        abc\P
11191     0: abc
11192        abc\n\P
11193     0: abc
11194    
11195    /abc\z/
11196        abc
11197     0: abc
11198        abc\P
11199     0: abc
11200        abc\P\P
11201    Partial match: abc
11202    
11203    /abc\Z/
11204        abc
11205     0: abc
11206        abc\P
11207     0: abc
11208        abc\P\P
11209    Partial match: abc
11210    
11211    /abc\b/
11212        abc
11213     0: abc
11214        abc\P
11215     0: abc
11216        abc\P\P
11217    Partial match: abc
11218    
11219    /abc\B/
11220        abc
11221    No match
11222        abc\P
11223    Partial match: abc
11224        abc\P\P
11225    Partial match: abc
11226    
11227    /.+/
11228        abc\>0
11229     0: abc
11230        abc\>1
11231     0: bc
11232        abc\>2
11233     0: c
11234        abc\>3
11235    No match
11236        abc\>4
11237    Error -24 (bad offset value)
11238        abc\>-4
11239    Error -24 (bad offset value)
11240    
11241    /^\cģ/
11242    Failed: \c must be followed by an ASCII character at offset 3
11243    
11244    /(?P<abn>(?P=abn)xxx)/BZ
11245    ------------------------------------------------------------------
11246            Bra
11247            Once
11248            CBra 1
11249            \1
11250            xxx
11251            Ket
11252            Ket
11253            Ket
11254            End
11255    ------------------------------------------------------------------
11256    
11257    /(a\1z)/BZ
11258    ------------------------------------------------------------------
11259            Bra
11260            Once
11261            CBra 1
11262            a
11263            \1
11264            z
11265            Ket
11266            Ket
11267            Ket
11268            End
11269    ------------------------------------------------------------------
11270    
11271    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11272    Failed: syntax error in subpattern name (missing terminator) at offset 29
11273    
11274    /(?P<abn>(?P=axn)xxx)/BZ
11275    Failed: reference to non-existent subpattern at offset 15
11276    
11277    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11278    ------------------------------------------------------------------
11279            Bra
11280            CBra 1
11281            \2
11282            xxx
11283            Ket
11284            CBra 2
11285            yy
11286            Ket
11287            Ket
11288            End
11289    ------------------------------------------------------------------
11290    
11291    /-- These tests are here because Perl gets the first one wrong. --/
11292    
11293    /(\R*)(.)/s
11294        \r\n
11295     0: \x0d
11296     1:
11297     2: \x0d
11298        \r\r\n\n\r
11299     0: \x0d\x0d\x0a\x0a\x0d
11300     1: \x0d\x0d\x0a\x0a
11301     2: \x0d
11302        \r\r\n\n\r\n
11303     0: \x0d\x0d\x0a\x0a\x0d
11304     1: \x0d\x0d\x0a\x0a
11305     2: \x0d
11306    
11307    /(\R)*(.)/s
11308        \r\n
11309     0: \x0d
11310     1: <unset>
11311     2: \x0d
11312        \r\r\n\n\r
11313     0: \x0d\x0d\x0a\x0a\x0d
11314     1: \x0a
11315     2: \x0d
11316        \r\r\n\n\r\n
11317     0: \x0d\x0d\x0a\x0a\x0d
11318     1: \x0a
11319     2: \x0d
11320    
11321    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11322        \r\n
11323     0: \x0d
11324     1:
11325     2: \x0d
11326        \r\r\n\n\r
11327     0: \x0d\x0d\x0a\x0a\x0d
11328     1: \x0d\x0d\x0a\x0a
11329     2: \x0d
11330        \r\r\n\n\r\n
11331     0: \x0d\x0d\x0a\x0a\x0d
11332     1: \x0d\x0d\x0a\x0a
11333     2: \x0d
11334    
11335    /-- --/
11336    
11337    /^abc$/BZ
11338    ------------------------------------------------------------------
11339            Bra
11340            ^
11341            abc
11342            $
11343            Ket
11344            End
11345    ------------------------------------------------------------------
11346    
11347    /^abc$/BZm
11348    ------------------------------------------------------------------
11349            Bra
11350         /m ^
11351            abc
11352         /m $
11353            Ket
11354            End
11355    ------------------------------------------------------------------
11356    
11357    /^(a)*+(\w)/S
11358        aaaaX
11359     0: aaaaX
11360     1: a
11361     2: X
11362        ** Failers
11363    No match
11364        aaaa
11365    No match
11366    
11367    /^(?:a)*+(\w)/S
11368        aaaaX
11369     0: aaaaX
11370     1: X
11371        ** Failers
11372    No match
11373        aaaa
11374    No match
11375    
11376    /(a)++1234/SDZ
11377    ------------------------------------------------------------------
11378            Bra
11379            CBraPos 1
11380            a
11381            KetRpos
11382            1234
11383            Ket
11384            End
11385    ------------------------------------------------------------------
11386    Capturing subpattern count = 1
11387    No options
11388    First char = 'a'
11389    Need char = '4'
11390    Subject length lower bound = 5
11391    No set of starting bytes
11392    
11393    /([abc])++1234/SI
11394    Capturing subpattern count = 1
11395    No options
11396    No first char
11397    Need char = '4'
11398    Subject length lower bound = 5
11399    Starting byte set: a b c
11400    
11401    /(?<=(abc)+)X/
11402    Failed: lookbehind assertion is not fixed length at offset 10
11403    
11404    /(^ab)/I
11405    Capturing subpattern count = 1
11406    Options: anchored
11407    No first char
11408    No need char
11409    
11410    /(^ab)++/I
11411    Capturing subpattern count = 1
11412    Options: anchored
11413    No first char
11414    No need char
11415    
11416    /(^ab|^)+/I
11417    Capturing subpattern count = 1
11418    Options: anchored
11419    No first char
11420    No need char
11421    
11422    /(^ab|^)++/I
11423    Capturing subpattern count = 1
11424    Options: anchored
11425    No first char
11426    No need char
11427    
11428    /(?:^ab)/I
11429    Capturing subpattern count = 0
11430    Options: anchored
11431    No first char
11432    No need char
11433    
11434    /(?:^ab)++/I
11435    Capturing subpattern count = 0
11436    Options: anchored
11437    No first char
11438    No need char
11439    
11440    /(?:^ab|^)+/I
11441    Capturing subpattern count = 0
11442    Options: anchored
11443    No first char
11444    No need char
11445    
11446    /(?:^ab|^)++/I
11447    Capturing subpattern count = 0
11448    Options: anchored
11449    No first char
11450    No need char
11451    
11452    /(.*ab)/I
11453    Capturing subpattern count = 1
11454    No options
11455    First char at start or follows newline
11456    Need char = 'b'
11457    
11458    /(.*ab)++/I
11459    Capturing subpattern count = 1
11460    No options
11461    First char at start or follows newline
11462    Need char = 'b'
11463    
11464    /(.*ab|.*)+/I
11465    Capturing subpattern count = 1
11466    No options
11467    First char at start or follows newline
11468    No need char
11469    
11470    /(.*ab|.*)++/I
11471    Capturing subpattern count = 1
11472    No options
11473    First char at start or follows newline
11474    No need char
11475    
11476    /(?:.*ab)/I
11477    Capturing subpattern count = 0
11478    No options
11479    First char at start or follows newline
11480    Need char = 'b'
11481    
11482    /(?:.*ab)++/I
11483    Capturing subpattern count = 0
11484    No options
11485    First char at start or follows newline
11486    Need char = 'b'
11487    
11488    /(?:.*ab|.*)+/I
11489    Capturing subpattern count = 0
11490    No options
11491    First char at start or follows newline
11492    No need char
11493    
11494    /(?:.*ab|.*)++/I
11495    Capturing subpattern count = 0
11496    No options
11497    First char at start or follows newline
11498    No need char
11499    
11500    /(?=a)[bcd]/I
11501    Capturing subpattern count = 0
11502    No options
11503    First char = 'a'
11504    No need char
11505    
11506    /((?=a))[bcd]/I
11507    Capturing subpattern count = 1
11508    No options
11509    First char = 'a'
11510    No need char
11511    
11512    /((?=a))+[bcd]/I
11513    Capturing subpattern count = 1
11514    No options
11515    First char = 'a'
11516    No need char
11517    
11518    /((?=a))++[bcd]/I
11519    Capturing subpattern count = 1
11520    No options
11521    First char = 'a'
11522    No need char
11523    
11524    /(?=a+)[bcd]/iI
11525    Capturing subpattern count = 0
11526    Options: caseless
11527    First char = 'a' (caseless)
11528    No need char
11529    
11530    /(?=a+?)[bcd]/iI
11531    Capturing subpattern count = 0
11532    Options: caseless
11533    First char = 'a' (caseless)
11534    No need char
11535    
11536    /(?=a++)[bcd]/iI
11537    Capturing subpattern count = 0
11538    Options: caseless
11539    First char = 'a' (caseless)
11540    No need char
11541    
11542    /(?=a{3})[bcd]/iI
11543    Capturing subpattern count = 0
11544    Options: caseless
11545    First char = 'a' (caseless)
11546    Need char = 'a' (caseless)
11547    
11548    /(abc)\1+/S
11549    
11550    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11551    
11552    /(?1)(?:(b(*ACCEPT))){0}/
11553        b
11554     0: b
11555    
11556    /(?1)(?:(b(*ACCEPT))){0}c/
11557        bc
11558     0: bc
11559        ** Failers
11560    No match
11561        b
11562    No match
11563    
11564    /(?1)(?:((*ACCEPT))){0}c/
11565        c
11566     0: c
11567        c\N
11568     0: c
11569    
11570    /^.*?(?(?=a)a|b(*THEN)c)/
11571        ba
11572     0: ba
11573    
11574    /^.*?(?(?=a)a|bc)/
11575        ba
11576     0: ba
11577    
11578    /-- --/
11579    
11580  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.500  
changed lines
  Added in v.609

  ViewVC Help
Powered by ViewVC 1.1.5