1 # This set of tests is for the 16-bit and 32-bit libraries' basic (non-UTF) 2 # features that are not compatible with the 8-bit library, or which give 3 # different output in 16-bit or 32-bit mode. The output for the two widths is 4 # different, so they have separate output files. 5 6 #forbid_utf 7 #newline_default LF ANY ANYCRLF 8 9 /[^\x{c4}]/IB 10 11 /\x{100}/I 12 13 / (?: [\040\t] | \( 14 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 15 \) )* # optional leading comment 16 (?: (?: 17 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 18 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 19 | 20 " (?: # opening quote... 21 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 22 | # or 23 \\ [^\x80-\xff] # Escaped something (something != CR) 24 )* " # closing quote 25 ) # initial word 26 (?: (?: [\040\t] | \( 27 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 28 \) )* \. (?: [\040\t] | \( 29 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 30 \) )* (?: 31 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 32 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 33 | 34 " (?: # opening quote... 35 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 36 | # or 37 \\ [^\x80-\xff] # Escaped something (something != CR) 38 )* " # closing quote 39 ) )* # further okay, if led by a period 40 (?: [\040\t] | \( 41 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 42 \) )* @ (?: [\040\t] | \( 43 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 44 \) )* (?: 45 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 46 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 47 | \[ # [ 48 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 49 \] # ] 50 ) # initial subdomain 51 (?: # 52 (?: [\040\t] | \( 53 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 54 \) )* \. # if led by a period... 55 (?: [\040\t] | \( 56 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 57 \) )* (?: 58 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 59 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 60 | \[ # [ 61 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 62 \] # ] 63 ) # ...further okay 64 )* 65 # address 66 | # or 67 (?: 68 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 69 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 70 | 71 " (?: # opening quote... 72 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 73 | # or 74 \\ [^\x80-\xff] # Escaped something (something != CR) 75 )* " # closing quote 76 ) # one word, optionally followed by.... 77 (?: 78 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... 79 \( 80 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 81 \) | # comments, or... 82 83 " (?: # opening quote... 84 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 85 | # or 86 \\ [^\x80-\xff] # Escaped something (something != CR) 87 )* " # closing quote 88 # quoted strings 89 )* 90 < (?: [\040\t] | \( 91 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 92 \) )* # leading < 93 (?: @ (?: [\040\t] | \( 94 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 95 \) )* (?: 96 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 97 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 98 | \[ # [ 99 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 100 \] # ] 101 ) # initial subdomain 102 (?: # 103 (?: [\040\t] | \( 104 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 105 \) )* \. # if led by a period... 106 (?: [\040\t] | \( 107 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 108 \) )* (?: 109 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 110 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 111 | \[ # [ 112 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 113 \] # ] 114 ) # ...further okay 115 )* 116 117 (?: (?: [\040\t] | \( 118 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 119 \) )* , (?: [\040\t] | \( 120 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 121 \) )* @ (?: [\040\t] | \( 122 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 123 \) )* (?: 124 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 125 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 126 | \[ # [ 127 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 128 \] # ] 129 ) # initial subdomain 130 (?: # 131 (?: [\040\t] | \( 132 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 133 \) )* \. # if led by a period... 134 (?: [\040\t] | \( 135 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 136 \) )* (?: 137 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 138 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 139 | \[ # [ 140 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 141 \] # ] 142 ) # ...further okay 143 )* 144 )* # further okay, if led by comma 145 : # closing colon 146 (?: [\040\t] | \( 147 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 148 \) )* )? # optional route 149 (?: 150 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 151 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 152 | 153 " (?: # opening quote... 154 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 155 | # or 156 \\ [^\x80-\xff] # Escaped something (something != CR) 157 )* " # closing quote 158 ) # initial word 159 (?: (?: [\040\t] | \( 160 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 161 \) )* \. (?: [\040\t] | \( 162 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 163 \) )* (?: 164 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 165 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 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 ) )* # further okay, if led by a period 173 (?: [\040\t] | \( 174 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 175 \) )* @ (?: [\040\t] | \( 176 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 177 \) )* (?: 178 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 179 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 180 | \[ # [ 181 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 182 \] # ] 183 ) # initial subdomain 184 (?: # 185 (?: [\040\t] | \( 186 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 187 \) )* \. # if led by a period... 188 (?: [\040\t] | \( 189 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 190 \) )* (?: 191 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 192 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 193 | \[ # [ 194 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 195 \] # ] 196 ) # ...further okay 197 )* 198 # address spec 199 (?: [\040\t] | \( 200 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 201 \) )* > # trailing > 202 # name and address 203 ) (?: [\040\t] | \( 204 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 205 \) )* # optional trailing comment 206 /Ix 207 208 /[\h]/B 209 >\x09< 210 211 /[\h]+/B 212 >\x09\x20\xa0< 213 214 /[\v]/B 215 216 /[^\h]/B 217 218 /\h+/I 219 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 220 \x{3001}\x{2fff}\x{200a}\xa0\x{2000} 221 222 /[\h\x{dc00}]+/IB 223 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 224 \x{3001}\x{2fff}\x{200a}\xa0\x{2000} 225 226 /\H+/I 227 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 228 \x{2000}\x{200a}\x{1fff}\x{200b} 229 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 230 \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001} 231 232 /[\H\x{d800}]+/ 233 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 234 \x{2000}\x{200a}\x{1fff}\x{200b} 235 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 236 \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001} 237 238 /\v+/I 239 \x{2027}\x{2030}\x{2028}\x{2029} 240 \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d 241 242 /[\v\x{dc00}]+/IB 243 \x{2027}\x{2030}\x{2028}\x{2029} 244 \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d 245 246 /\V+/I 247 \x{2028}\x{2029}\x{2027}\x{2030} 248 \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86 249 250 /[\V\x{d800}]+/ 251 \x{2028}\x{2029}\x{2027}\x{2030} 252 \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86 253 254 /\R+/I,bsr=unicode 255 \x{2027}\x{2030}\x{2028}\x{2029} 256 \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d 257 258 /\x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}/I 259 \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00} 260 261 /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/B 262 263 /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/Bi 264 265 /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/B 266 267 /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/Bi 268 269 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark 270 XX 271 272 /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark 273 XX 274 275 /\u0100/B,alt_bsux,allow_empty_class,match_unset_backref 276 277 /[\u0100-\u0200]/B,alt_bsux,allow_empty_class,match_unset_backref 278 279 /\ud800/B,alt_bsux,allow_empty_class,match_unset_backref 280 281 /^\x{ffff}+/i 282 \x{ffff} 283 284 /^\x{ffff}?/i 285 \x{ffff} 286 287 /^\x{ffff}*/i 288 \x{ffff} 289 290 /^\x{ffff}{3}/i 291 \x{ffff}\x{ffff}\x{ffff} 292 293 /^\x{ffff}{0,3}/i 294 \x{ffff} 295 296 /[^\x00-a]{12,}[^b-\xff]*/B 297 298 /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B 299 300 /a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/B 301 302 /^[\x{1234}\x{4321}]{2,4}?/ 303 \x{1234}\x{1234}\x{1234} 304 305 # Check maximum non-UTF character size for the 16-bit library. 306 307 /\x{ffff}/ 308 A\x{ffff}B 309 310 /\x{10000}/ 311 312 /\o{20000}/ 313 314 # Check maximum character size for the 32-bit library. These will all give 315 # errors in the 16-bit library. 316 317 /\x{110000}/ 318 319 /\x{7fffffff}/ 320 321 /\x{80000000}/ 322 323 /\x{ffffffff}/ 324 325 /\x{100000000}/ 326 327 /\o{17777777777}/ 328 329 /\o{20000000000}/ 330 331 /\o{37777777777}/ 332 333 /\o{40000000000}/ 334 335 /\x{7fffffff}\x{7fffffff}/I 336 337 /\x{80000000}\x{80000000}/I 338 339 /\x{ffffffff}\x{ffffffff}/I 340 341 # Non-UTF characters 342 343 /.{2,3}/ 344 \x{400000}\x{400001}\x{400002}\x{400003} 345 346 /\x{400000}\x{800000}/IBi 347 348 # Check character ranges 349 350 /[\H]/IB 351 352 /[\V]/IB 353 354 /(*THEN:\[A]{65501})/expand 355 356 # End of testinput11 357