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

Diff of /code/trunk/testdata/testoutput1

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

revision 1271 by ph10, Wed Mar 6 16:50:38 2013 UTC revision 1370 by ph10, Wed Oct 9 10:18:26 2013 UTC
# Line 1  Line 1 
1  /-- This set of tests is for features that are compatible with all versions of  /-- This set of tests is for features that are compatible with all versions of
2      Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and      Perl >= 5.10, in non-UTF-8 mode. It should run clean for the 8-bit, 16-bit,
3      16-bit PCRE libraries. --/      and 32-bit PCRE libraries. --/
4    
5  /the quick brown fox/  /the quick brown fox/
6      the quick brown fox      the quick brown fox
# Line 2149  No match Line 2149  No match
2149      abc\100\60      abc\100\60
2150   0: abc@0   0: abc@0
2151   1: abc   1: abc
2152    
2153  /abc\81/  /^A\8B\9C$/
2154      abc\081      A8B9C
2155   0: abc\x0081   0: A8B9C
2156      abc\0\x38\x31      *** Failers
2157   0: abc\x0081  No match
2158        A\08B\09C
2159  /abc\91/  No match
2160      abc\091  
2161   0: abc\x0091  /^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/
2162      abc\0\x39\x31      ABCDEFGHIHI
2163   0: abc\x0091   0: ABCDEFGHIHI
2164     1: A
2165     2: B
2166     3: C
2167     4: D
2168     5: E
2169     6: F
2170     7: G
2171     8: H
2172     9: I
2173    
2174    /^[A\8B\9C]+$/
2175        A8B9C
2176     0: A8B9C
2177        *** Failers
2178    No match
2179        A8B9C\x00
2180    No match
2181    
2182  /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/  /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
2183      abcdefghijkllS      abcdefghijkllS
# Line 6006  No match Line 6023  No match
6023    
6024  /[\s]+/  /[\s]+/
6025      > \x09\x0a\x0c\x0d\x0b<      > \x09\x0a\x0c\x0d\x0b<
6026   0:  \x09\x0a\x0c\x0d   0:  \x09\x0a\x0c\x0d\x0b
6027    
6028  /\s+/  /\s+/
6029      > \x09\x0a\x0c\x0d\x0b<      > \x09\x0a\x0c\x0d\x0b<
6030   0:  \x09\x0a\x0c\x0d   0:  \x09\x0a\x0c\x0d\x0b
6031    
6032  /a b/x  /a b/x
6033      ab      ab
6034  No match   0: ab
6035    
6036  /(?!\A)x/m  /(?!\A)x/m
6037    a\nxb\n    a\nxb\n
# Line 6160  No match Line 6177  No match
6177   1: bc   1: bc
6178   2: bc   2: bc
6179    
6180  /-- This tests for an IPv6 address in the form where it can have up to --/  /-- This tests for an IPv6 address in the form where it can have up to
6181  /-- eight components, one and only one of which is empty. This must be --/      eight components, one and only one of which is empty. This must be
6182  No match      an internal component. --/
 /-- an internal component. --/  
 No match  
6183    
6184  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
6185    (?:                         # start of item    (?:                         # start of item
# Line 6906  No match Line 6921  No match
6921      bc      bc
6922   0: b   0: b
6923    
 /^(?=(a)){0}b(?1)/  
     backgammon  
  0: ba  
   
6924  /^(?=(?1))?[az]([abc])d/  /^(?=(?1))?[az]([abc])d/
6925      abd      abd
6926   0: abd   0: abd
# Line 7770  No match Line 7781  No match
7781   1: (ab(cd)ef)   1: (ab(cd)ef)
7782   2: ef   2: ef
7783    
 /^(?!a(*SKIP)b)/  
     ac  
  0:  
   
7784  /^(?=a(*SKIP)b|ac)/  /^(?=a(*SKIP)b|ac)/
7785      ** Failers      ** Failers
7786  No match  No match
7787      ac      ac
7788  No match  No match
7789    
 /^(?=a(*THEN)b|ac)/  
     ac  
  0:  
   
7790  /^(?=a(*PRUNE)b)/  /^(?=a(*PRUNE)b)/
7791      ab      ab
7792   0:   0:
# Line 7796  No match Line 7799  No match
7799      ac      ac
7800   0:   0:
7801    
 /^(?(?!a(*SKIP)b))/  
     ac  
  0:  
   
7802  /(?>a\Kb)/  /(?>a\Kb)/
7803      ab      ab
7804   0: b   0: b
# Line 8169  No match Line 8168  No match
8168   1: AB   1: AB
8169   2: B   2: B
8170    
 /\A.*?(?:a|b(*THEN)c)/  
     ba  
  0: ba  
   
 /\A.*?(?:a|bc)/  
     ba  
  0: ba  
   
 /\A.*?(a|b(*THEN)c)/  
     ba  
  0: ba  
  1: a  
   
8171  /\A.*?(a|bc)/  /\A.*?(a|bc)/
8172      ba      ba
8173   0: ba   0: ba
8174   1: a   1: a
8175    
 /\A.*?(?:a|b(*THEN)c)++/  
     ba  
  0: ba  
   
8176  /\A.*?(?:a|bc)++/  /\A.*?(?:a|bc)++/
8177      ba      ba
8178   0: ba   0: ba
8179    
 /\A.*?(a|b(*THEN)c)++/  
     ba  
  0: ba  
  1: a  
   
8180  /\A.*?(a|bc)++/  /\A.*?(a|bc)++/
8181      ba      ba
8182   0: ba   0: ba
8183   1: a   1: a
8184    
 /\A.*?(?:a|b(*THEN)c|d)/  
     ba  
  0: ba  
   
8185  /\A.*?(?:a|bc|d)/  /\A.*?(?:a|bc|d)/
8186      ba      ba
8187   0: ba   0: ba
# Line 8719  No match Line 8692  No match
8692      aac      aac
8693   0: aac   0: aac
8694    
 /(?!a(*COMMIT)b)ac|cd/  
     ac  
  0: ac  
   
8695  /((?:a?)*)*c/  /((?:a?)*)*c/
8696    aac    aac
8697   0: aac   0: aac
# Line 8803  No match Line 8772  No match
8772      ac      ac
8773   0: ac   0: ac
8774    
8775  /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/  /(?<=(*SKIP)ac)a/
8776      aac      aa
8777    No match
8778    
8779    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
8780        AAAC
8781     0: AC
8782    
8783    /a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/K
8784        acacd
8785     0: acd
8786    MK: n
8787    
8788    /A(*SKIP:m)x|A(*SKIP:n)x|AB/K
8789        AB
8790     0: AB
8791    
8792    /((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/K
8793        acacd
8794     0: ac
8795    MK: n
8796    
8797    /-- Tests that try to figure out how Perl works. My hypothesis is that the
8798        first verb that is backtracked onto is the one that acts. This seems to be
8799        the case almost all the time, but there is one exception that is perhaps a
8800        bug. --/
8801    
8802    /-- This matches "aaaac"; each PRUNE advances one character until the subject
8803        no longer starts with 5 'a's. --/
8804    
8805    /aaaaa(*PRUNE)b|a+c/
8806        aaaaaac
8807     0: aaaac
8808    
8809    /-- Putting SKIP in front of PRUNE makes no difference, as it is never
8810    backtracked onto, whether or not it has a label. --/
8811    
8812    /aaaaa(*SKIP)(*PRUNE)b|a+c/
8813        aaaaaac
8814     0: aaaac
8815    
8816    /aaaaa(*SKIP:N)(*PRUNE)b|a+c/
8817        aaaaaac
8818     0: aaaac
8819    
8820    /aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/
8821        aaaaaac
8822     0: aaaac
8823    
8824    /-- Putting THEN in front makes no difference. */
8825    
8826    /aaaaa(*THEN)(*PRUNE)b|a+c/
8827        aaaaaac
8828     0: aaaac
8829    
8830    /-- However, putting COMMIT in front of the prune changes it to "no match". I
8831        think this is inconsistent and possibly a bug. For the moment, running this
8832        test is moved out of the Perl-compatible file. --/
8833    
8834    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
8835    
8836    
8837    /---- OK, lets play the same game again using SKIP instead of PRUNE. ----/
8838    
8839    /-- This matches "ac" because SKIP forces the next match to start on the
8840        sixth "a". --/
8841    
8842    /aaaaa(*SKIP)b|a+c/
8843        aaaaaac
8844     0: ac
8845    
8846    /-- Putting PRUNE in front makes no difference. --/
8847    
8848    /aaaaa(*PRUNE)(*SKIP)b|a+c/
8849        aaaaaac
8850     0: ac
8851    
8852    /-- Putting THEN in front makes no difference. --/
8853    
8854    /aaaaa(*THEN)(*SKIP)b|a+c/
8855        aaaaaac
8856     0: ac
8857    
8858    /-- In this case, neither does COMMIT. This still matches "ac". --/
8859    
8860    /aaaaa(*COMMIT)(*SKIP)b|a+c/
8861        aaaaaac
8862     0: ac
8863    
8864    /-- This gives "no match", as expected. --/
8865    
8866    /aaaaa(*COMMIT)b|a+c/
8867        aaaaaac
8868    No match
8869    
8870    
8871    /------ Tests using THEN ------/
8872    
8873    /-- This matches "aaaaaac", as expected. --/
8874    
8875    /aaaaa(*THEN)b|a+c/
8876        aaaaaac
8877     0: aaaaaac
8878    
8879    /-- Putting SKIP in front makes no difference. --/
8880    
8881    /aaaaa(*SKIP)(*THEN)b|a+c/
8882        aaaaaac
8883     0: aaaaaac
8884    
8885    /-- Putting PRUNE in front makes no difference. --/
8886    
8887    /aaaaa(*PRUNE)(*THEN)b|a+c/
8888        aaaaaac
8889     0: aaaaaac
8890    
8891    /-- Putting COMMIT in front makes no difference. --/
8892    
8893    /aaaaa(*COMMIT)(*THEN)b|a+c/
8894        aaaaaac
8895     0: aaaaaac
8896    
8897    /-- End of "priority" tests --/
8898    
8899    /aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/
8900        aaaaaa
8901     0: a
8902    
8903    /aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
8904        aaaaaa
8905     0: a
8906    
8907    /aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/
8908        aaaaaa
8909     0: aaaa
8910    
8911    /aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
8912        aaaaaa
8913     0: a
8914    
8915    /a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/
8916        aaaac
8917     0: aac
8918    
8919    /a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/
8920        aaaac
8921     0: ac
8922    
8923    /aaa(*PRUNE:A)a(*SKIP:A)b|a+c/
8924        aaaac
8925   0: aac   0: aac
8926    
8927    /aaa(*MARK:A)a(*SKIP:A)b|a+c/
8928        aaaac
8929     0: ac
8930    
8931    /a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/K
8932        aaaaaac
8933     0: ac
8934    
8935    /.?(a|b(*THEN)c)/
8936        ba
8937     0: ba
8938     1: a
8939    
8940    /(a(*COMMIT)b)c|abd/
8941        abc
8942     0: abc
8943     1: ab
8944        abd
8945    No match
8946    
8947    /(?=a(*COMMIT)b)abc|abd/
8948        abc
8949     0: abc
8950        abd
8951     0: abd
8952    
8953    /(?>a(*COMMIT)b)c|abd/
8954        abc
8955     0: abc
8956        abd
8957     0: abd
8958    
8959    /a(?=b(*COMMIT)c)[^d]|abd/
8960        abd
8961    No match
8962        abc
8963     0: ab
8964    
8965    /a(?=bc).|abd/
8966        abd
8967     0: abd
8968        abc
8969     0: ab
8970    
8971    /a(?>b(*COMMIT)c)d|abd/
8972        abceabd
8973    No match
8974    
8975    /a(?>bc)d|abd/
8976        abceabd
8977     0: abd
8978    
8979    /(?>a(*COMMIT)b)c|abd/
8980        abd
8981     0: abd
8982    
8983    /(?>a(*COMMIT)c)d|abd/
8984        abd
8985    No match
8986    
8987    /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
8988        ac
8989     0: ac
8990     1: <unset>
8991     2: c
8992    
8993    /-- These tests were formerly in test 2, but changes in PCRE and Perl have
8994        made them compatible. --/
8995    
8996    /^(a)?(?(1)a|b)+$/
8997        *** Failers
8998    No match
8999        a
9000    No match
9001    
9002    /(?=a\Kb)ab/
9003        ab
9004     0: b
9005    
9006    /(?!a\Kb)ac/
9007        ac
9008     0: ac
9009    
9010    /^abc(?<=b\Kc)d/
9011        abcd
9012     0: cd
9013    
9014    /^abc(?<!b\Kq)d/
9015        abcd
9016     0: abcd
9017    
9018    
9019    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
9020        AAAC
9021    No match, mark = A
9022    
9023    /^((abc|abcx)(*THEN)y|abcd)/
9024        abcd
9025     0: abcd
9026     1: abcd
9027        *** Failers
9028    No match
9029        abcxy
9030    No match
9031    
9032    /^((yes|no)(*THEN)(*F))?/
9033      yes
9034    No match
9035    
9036    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
9037    AbcdCBefgBhiBqz
9038    No match
9039    
9040    /(A (.*)   C? (*THEN)  | A D) z/x
9041    AbcdCBefgBhiBqz
9042    No match
9043    
9044    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
9045    AbcdCBefgBhiBqz
9046    No match
9047    
9048    /(A (.*)   C? (*THEN)  | A D) \s* z/x
9049    AbcdCBefgBhiBqz
9050    No match
9051    
9052    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
9053    AbcdCBefgBhiBqz
9054    No match
9055    
9056    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
9057    AbcdCBefgBhiBqz
9058    No match
9059    
9060    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
9061    AbcdCBefgBhiBqz
9062    No match
9063    
9064    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
9065    AbcdCBefgBhiBqz
9066    No match
9067    
9068    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
9069    AbcdCEBefgBhiBqz
9070    No match
9071    
9072    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
9073    AbcdCEBefgBhiBqz
9074    No match
9075    
9076    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
9077    AbcdCBefgBhiBqz
9078    No match
9079    
9080    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
9081    AbcdCBefgBhiBqz
9082    No match
9083    
9084    /(?=a(*COMMIT)b|ac)ac|ac/
9085        ac
9086    No match
9087    
9088    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
9089        ac
9090    No match
9091    
9092    /--------/
9093    
9094    /(?(?!b(*THEN)a)bn|bnn)/
9095       bnn
9096     0: bn
9097    
9098    /(?!b(*SKIP)a)bn|bnn/
9099        bnn
9100     0: bn
9101    
9102    /(?(?!b(*SKIP)a)bn|bnn)/
9103       bnn
9104     0: bn
9105    
9106    /(?!b(*PRUNE)a)bn|bnn/
9107        bnn
9108     0: bn
9109    
9110    /(?(?!b(*PRUNE)a)bn|bnn)/
9111       bnn
9112     0: bn
9113    
9114    /(?!b(*COMMIT)a)bn|bnn/
9115        bnn
9116     0: bn
9117    
9118    /(?(?!b(*COMMIT)a)bn|bnn)/
9119       bnn
9120     0: bn
9121    
9122    /(?=b(*SKIP)a)bn|bnn/
9123        bnn
9124    No match
9125    
9126    /(?=b(*THEN)a)bn|bnn/
9127        bnn
9128     0: bnn
9129    
9130     /^(?!a(*SKIP)b)/
9131         ac
9132     0:
9133    
9134     /^(?!a(*SKIP)b)../
9135         acd
9136     0: ac
9137    
9138    /(?!a(*SKIP)b)../
9139         acd
9140     0: ac
9141    
9142    /^(?(?!a(*SKIP)b))/
9143         ac
9144     0:
9145    
9146    /^(?!a(*PRUNE)b)../
9147         acd
9148     0: ac
9149    
9150    /(?!a(*PRUNE)b)../
9151         acd
9152     0: ac
9153    
9154     /(?!a(*COMMIT)b)ac|cd/
9155         ac
9156     0: ac
9157    
9158    /\A.*?(?:a|bc)/
9159        ba
9160     0: ba
9161    
9162    /^(A(*THEN)B|C(*THEN)D)/
9163        CD
9164     0: CD
9165     1: CD
9166    
9167    /(*:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9168        abc
9169     0: b
9170    MK: m(m
9171    
9172    /(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9173        abc
9174     0: b
9175    MK: m(m
9176    
9177    /(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9178        abc
9179     0: b
9180    
9181    /(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9182        abc
9183     0: b
9184    MK: m(m
9185    
9186    /^\d*\w{4}/
9187        1234
9188     0: 1234
9189        123
9190    No match
9191    
9192    /^[^b]*\w{4}/
9193        aaaa
9194     0: aaaa
9195        aaa
9196    No match
9197    
9198    /^[^b]*\w{4}/i
9199        aaaa
9200     0: aaaa
9201        aaa
9202    No match
9203    
9204    /^a*\w{4}/
9205        aaaa
9206     0: aaaa
9207        aaa
9208    No match
9209    
9210    /^a*\w{4}/i
9211        aaaa
9212     0: aaaa
9213        aaa
9214    No match
9215    
9216    /(?(?=ab)ab)/+
9217        ca
9218     0:
9219     0+ ca
9220        cd
9221     0:
9222     0+ cd
9223    
9224    /(?:(?<n>foo)|(?<n>bar))\k<n>/J
9225        foofoo
9226     0: foofoo
9227     1: foo
9228        barbar
9229     0: barbar
9230     1: <unset>
9231     2: bar
9232    
9233    /(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/J
9234        AfooA
9235     0: AfooA
9236     1: A
9237     2: foo
9238        AbarA
9239     0: AbarA
9240     1: A
9241     2: <unset>
9242     3: bar
9243        ** Failers
9244    No match
9245        Afoofoo
9246    No match
9247        Abarbar
9248    No match
9249    
9250    /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
9251        1 IN SOA non-sp1 non-sp2(
9252     0: 1 IN SOA non-sp1 non-sp2(
9253     1: 1
9254     2: non-sp1
9255     3: non-sp2
9256    
9257    /^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?('A')x) (?(<B>)y)$/xJ
9258        Ax
9259     0: Ax
9260     1: A
9261        BAxy
9262     0: BAxy
9263     1: <unset>
9264     2: B
9265     3: A
9266    
9267    /^A\xZ/
9268        A\0Z
9269     0: A\x00Z
9270    
9271    /^A\o{123}B/
9272        A\123B
9273     0: ASB
9274    
9275  /-- End of testinput1 --/  /-- End of testinput1 --/

Legend:
Removed from v.1271  
changed lines
  Added in v.1370

  ViewVC Help
Powered by ViewVC 1.1.5