Home | History | Annotate | Download | only in testdata
      1 /-- This set of tests is run only with the 8-bit library. They do not require 
      2     UTF-8 or Unicode property support. The file starts with all the tests of
      3     the POSIX interface, because that is supported only with the 8-bit library.
      4     --/
      5     
      6 < forbid 8W 
      7 
      8 /abc/P
      9     abc
     10     *** Failers
     11 
     12 /^abc|def/P
     13     abcdef
     14     abcdef\B
     15 
     16 /.*((abc)$|(def))/P
     17     defabc
     18     \Zdefabc
     19 
     20 /the quick brown fox/P
     21     the quick brown fox
     22     *** Failers
     23     The Quick Brown Fox
     24 
     25 /the quick brown fox/Pi
     26     the quick brown fox
     27     The Quick Brown Fox
     28 
     29 /abc.def/P
     30     *** Failers
     31     abc\ndef
     32 
     33 /abc$/P
     34     abc
     35     abc\n
     36 
     37 /(abc)\2/P
     38 
     39 /(abc\1)/P
     40     abc
     41 
     42 /a*(b+)(z)(z)/P
     43     aaaabbbbzzzz
     44     aaaabbbbzzzz\O0
     45     aaaabbbbzzzz\O1
     46     aaaabbbbzzzz\O2
     47     aaaabbbbzzzz\O3
     48     aaaabbbbzzzz\O4
     49     aaaabbbbzzzz\O5
     50 
     51 /ab.cd/P
     52     ab-cd
     53     ab=cd
     54     ** Failers
     55     ab\ncd
     56 
     57 /ab.cd/Ps
     58     ab-cd
     59     ab=cd
     60     ab\ncd
     61 
     62 /a(b)c/PN
     63     abc
     64 
     65 /a(?P<name>b)c/PN
     66     abc
     67 
     68 /a?|b?/P
     69     abc
     70     ** Failers
     71     ddd\N   
     72 
     73 /\w+A/P
     74    CDAAAAB 
     75 
     76 /\w+A/PU
     77    CDAAAAB 
     78    
     79 /\Biss\B/I+P
     80     Mississippi
     81 
     82 /abc/\P
     83 
     84 /-- End of POSIX tests --/ 
     85 
     86 /a\Cb/
     87     aXb
     88     a\nb
     89     ** Failers (too big char) 
     90     A\x{123}B 
     91     A\o{443}B 
     92   
     93 /\x{100}/I
     94 
     95 /\o{400}/I
     96 
     97 /  (?: [\040\t] |  \(
     98 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
     99 \)  )*                          # optional leading comment
    100 (?:    (?:
    101 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    102 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    103 |
    104 " (?:                      # opening quote...
    105 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    106 |                     #    or
    107 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    108 )* "  # closing quote
    109 )                    # initial word
    110 (?:  (?: [\040\t] |  \(
    111 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    112 \)  )*  \.  (?: [\040\t] |  \(
    113 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    114 \)  )*   (?:
    115 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    116 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    117 |
    118 " (?:                      # opening quote...
    119 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    120 |                     #    or
    121 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    122 )* "  # closing quote
    123 )  )* # further okay, if led by a period
    124 (?: [\040\t] |  \(
    125 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    126 \)  )*  @  (?: [\040\t] |  \(
    127 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    128 \)  )*    (?:
    129 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    130 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    131 |   \[                         # [
    132 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    133 \]                        #           ]
    134 )                           # initial subdomain
    135 (?:                                  #
    136 (?: [\040\t] |  \(
    137 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    138 \)  )*  \.                        # if led by a period...
    139 (?: [\040\t] |  \(
    140 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    141 \)  )*   (?:
    142 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    143 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    144 |   \[                         # [
    145 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    146 \]                        #           ]
    147 )                     #   ...further okay
    148 )*
    149 # address
    150 |                     #  or
    151 (?:
    152 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    153 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    154 |
    155 " (?:                      # opening quote...
    156 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    157 |                     #    or
    158 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    159 )* "  # closing quote
    160 )             # one word, optionally followed by....
    161 (?:
    162 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
    163 \(
    164 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    165 \)       |  # comments, or...
    166 
    167 " (?:                      # opening quote...
    168 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    169 |                     #    or
    170 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    171 )* "  # closing quote
    172 # quoted strings
    173 )*
    174 <  (?: [\040\t] |  \(
    175 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    176 \)  )*                     # leading <
    177 (?:  @  (?: [\040\t] |  \(
    178 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    179 \)  )*    (?:
    180 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    181 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    182 |   \[                         # [
    183 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    184 \]                        #           ]
    185 )                           # initial subdomain
    186 (?:                                  #
    187 (?: [\040\t] |  \(
    188 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    189 \)  )*  \.                        # if led by a period...
    190 (?: [\040\t] |  \(
    191 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    192 \)  )*   (?:
    193 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    194 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    195 |   \[                         # [
    196 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    197 \]                        #           ]
    198 )                     #   ...further okay
    199 )*
    200 
    201 (?:  (?: [\040\t] |  \(
    202 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    203 \)  )*  ,  (?: [\040\t] |  \(
    204 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    205 \)  )*  @  (?: [\040\t] |  \(
    206 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    207 \)  )*    (?:
    208 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    209 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    210 |   \[                         # [
    211 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    212 \]                        #           ]
    213 )                           # initial subdomain
    214 (?:                                  #
    215 (?: [\040\t] |  \(
    216 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    217 \)  )*  \.                        # if led by a period...
    218 (?: [\040\t] |  \(
    219 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    220 \)  )*   (?:
    221 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    222 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    223 |   \[                         # [
    224 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    225 \]                        #           ]
    226 )                     #   ...further okay
    227 )*
    228 )* # further okay, if led by comma
    229 :                                # closing colon
    230 (?: [\040\t] |  \(
    231 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    232 \)  )*  )? #       optional route
    233 (?:
    234 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    235 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    236 |
    237 " (?:                      # opening quote...
    238 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    239 |                     #    or
    240 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    241 )* "  # closing quote
    242 )                    # initial word
    243 (?:  (?: [\040\t] |  \(
    244 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    245 \)  )*  \.  (?: [\040\t] |  \(
    246 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    247 \)  )*   (?:
    248 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    249 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    250 |
    251 " (?:                      # opening quote...
    252 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
    253 |                     #    or
    254 \\ [^\x80-\xff]           #   Escaped something (something != CR)
    255 )* "  # closing quote
    256 )  )* # further okay, if led by a period
    257 (?: [\040\t] |  \(
    258 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    259 \)  )*  @  (?: [\040\t] |  \(
    260 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    261 \)  )*    (?:
    262 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    263 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    264 |   \[                         # [
    265 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    266 \]                        #           ]
    267 )                           # initial subdomain
    268 (?:                                  #
    269 (?: [\040\t] |  \(
    270 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    271 \)  )*  \.                        # if led by a period...
    272 (?: [\040\t] |  \(
    273 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    274 \)  )*   (?:
    275 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
    276 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
    277 |   \[                         # [
    278 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
    279 \]                        #           ]
    280 )                     #   ...further okay
    281 )*
    282 #       address spec
    283 (?: [\040\t] |  \(
    284 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    285 \)  )*  > #                  trailing >
    286 # name and address
    287 )  (?: [\040\t] |  \(
    288 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
    289 \)  )*                       # optional trailing comment
    290 /xSI
    291 
    292 /-- Although this saved pattern was compiled with link-size=2, it does no harm
    293 to run this test with other link sizes because it is going to generated a
    294 "compiled in wrong mode" error as soon as it is loaded, so the link size does 
    295 not matter. --/
    296 
    297 <!testsaved16
    298 
    299 <!testsaved32
    300 
    301 /\h/SI
    302 
    303 /\H/SI
    304 
    305 /\v/SI
    306 
    307 /\V/SI
    308 
    309 /\R/SI
    310 
    311 /[\h]/BZ
    312     >\x09<
    313 
    314 /[\h]+/BZ
    315     >\x09\x20\xa0<
    316 
    317 /[\v]/BZ
    318 
    319 /[\H]/BZ
    320 
    321 /[^\h]/BZ
    322 
    323 /[\V]/BZ
    324 
    325 /[\x0a\V]/BZ
    326 
    327 /\777/I
    328 
    329 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/K
    330     XX
    331      
    332 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/K
    333     XX
    334 
    335 /\u0100/<JS>
    336 
    337 /[\u0100-\u0200]/<JS>
    338 
    339 /[^\x00-a]{12,}[^b-\xff]*/BZ
    340 
    341 /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
    342 
    343 /-- End of testinput14 --/
    344