Annotation of embedaddon/pcre/testdata/testinput13, revision 1.1
1.1 ! misho 1: /-- These tests for Unicode property support test PCRE's API and show some of
! 2: the compiled code. They are not Perl-compatible. --/
! 3:
! 4: /[\p{L}]/DZ
! 5:
! 6: /[\p{^L}]/DZ
! 7:
! 8: /[\P{L}]/DZ
! 9:
! 10: /[\P{^L}]/DZ
! 11:
! 12: /[abc\p{L}\x{0660}]/8DZ
! 13:
! 14: /[\p{Nd}]/8DZ
! 15: 1234
! 16:
! 17: /[\p{Nd}+-]+/8DZ
! 18: 1234
! 19: 12-34
! 20: 12+\x{661}-34
! 21: ** Failers
! 22: abcd
! 23:
! 24: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ
! 25:
! 26: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ
! 27:
! 28: /AB\x{1fb0}/8DZ
! 29:
! 30: /AB\x{1fb0}/8DZi
! 31:
! 32: /[\x{105}-\x{109}]/8iDZ
! 33: \x{104}
! 34: \x{105}
! 35: \x{109}
! 36: ** Failers
! 37: \x{100}
! 38: \x{10a}
! 39:
! 40: /[z-\x{100}]/8iDZ
! 41: Z
! 42: z
! 43: \x{39c}
! 44: \x{178}
! 45: |
! 46: \x{80}
! 47: \x{ff}
! 48: \x{100}
! 49: \x{101}
! 50: ** Failers
! 51: \x{102}
! 52: Y
! 53: y
! 54:
! 55: /[z-\x{100}]/8DZi
! 56:
! 57: /(?:[\PPa*]*){8,}/
! 58:
! 59: /[\P{Any}]/BZ
! 60:
! 61: /[\P{Any}\E]/BZ
! 62:
! 63: /(\P{Yi}+\277)/
! 64:
! 65: /(\P{Yi}+\277)?/
! 66:
! 67: /(?<=\P{Yi}{3}A)X/
! 68:
! 69: /\p{Yi}+(\P{Yi}+)(?1)/
! 70:
! 71: /(\P{Yi}{2}\277)?/
! 72:
! 73: /[\P{Yi}A]/
! 74:
! 75: /[\P{Yi}\P{Yi}\P{Yi}A]/
! 76:
! 77: /[^\P{Yi}A]/
! 78:
! 79: /[^\P{Yi}\P{Yi}\P{Yi}A]/
! 80:
! 81: /(\P{Yi}*\277)*/
! 82:
! 83: /(\P{Yi}*?\277)*/
! 84:
! 85: /(\p{Yi}*+\277)*/
! 86:
! 87: /(\P{Yi}?\277)*/
! 88:
! 89: /(\P{Yi}??\277)*/
! 90:
! 91: /(\p{Yi}?+\277)*/
! 92:
! 93: /(\P{Yi}{0,3}\277)*/
! 94:
! 95: /(\P{Yi}{0,3}?\277)*/
! 96:
! 97: /(\p{Yi}{0,3}+\277)*/
! 98:
! 99: /\p{Zl}{2,3}+/8BZ
! 100: \xe2\x80\xa8\xe2\x80\xa8
! 101: \x{2028}\x{2028}\x{2028}
! 102:
! 103: /\p{Zl}/8BZ
! 104:
! 105: /\p{Lu}{3}+/8BZ
! 106:
! 107: /\pL{2}+/8BZ
! 108:
! 109: /\p{Cc}{2}+/8BZ
! 110:
! 111: /^\p{Cs}/8
! 112: \?\x{dfff}
! 113: ** Failers
! 114: \x{09f}
! 115:
! 116: /^\p{Sc}+/8
! 117: $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
! 118: \x{9f2}
! 119: ** Failers
! 120: X
! 121: \x{2c2}
! 122:
! 123: /^\p{Zs}/8
! 124: \ \
! 125: \x{a0}
! 126: \x{1680}
! 127: \x{180e}
! 128: \x{2000}
! 129: \x{2001}
! 130: ** Failers
! 131: \x{2028}
! 132: \x{200d}
! 133:
! 134: /-- These four are here rather than in test 6 because Perl has problems with
! 135: the negative versions of the properties. --/
! 136:
! 137: /\p{^Lu}/8i
! 138: 1234
! 139: ** Failers
! 140: ABC
! 141:
! 142: /\P{Lu}/8i
! 143: 1234
! 144: ** Failers
! 145: ABC
! 146:
! 147: /\p{Ll}/8i
! 148: a
! 149: Az
! 150: ** Failers
! 151: ABC
! 152:
! 153: /\p{Lu}/8i
! 154: A
! 155: a\x{10a0}B
! 156: ** Failers
! 157: a
! 158: \x{1d00}
! 159:
! 160: /[\x{c0}\x{391}]/8i
! 161: \x{c0}
! 162: \x{e0}
! 163:
! 164: /-- The next two are special cases where the lengths of the different cases of
! 165: the same character differ. The first went wrong with heap frame storage; the
! 166: second was broken in all cases. --/
! 167:
! 168: /^\x{023a}+?(\x{0130}+)/8i
! 169: \x{023a}\x{2c65}\x{0130}
! 170:
! 171: /^\x{023a}+([^X])/8i
! 172: \x{023a}\x{2c65}X
! 173:
! 174: /\x{c0}+\x{116}+/8i
! 175: \x{c0}\x{e0}\x{116}\x{117}
! 176:
! 177: /[\x{c0}\x{116}]+/8i
! 178: \x{c0}\x{e0}\x{116}\x{117}
! 179:
! 180: /(\x{de})\1/8i
! 181: \x{de}\x{de}
! 182: \x{de}\x{fe}
! 183: \x{fe}\x{fe}
! 184: \x{fe}\x{de}
! 185:
! 186: /^\x{c0}$/8i
! 187: \x{c0}
! 188: \x{e0}
! 189:
! 190: /^\x{e0}$/8i
! 191: \x{c0}
! 192: \x{e0}
! 193:
! 194: /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
! 195: will match it only with UCP support, because without that it has no notion
! 196: of case for anything other than the ASCII letters. --/
! 197:
! 198: /((?i)[\x{c0}])/8
! 199: \x{c0}
! 200: \x{e0}
! 201:
! 202: /(?i:[\x{c0}])/8
! 203: \x{c0}
! 204: \x{e0}
! 205:
! 206: /-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
! 207:
! 208: /^\X/8
! 209: A
! 210: A\x{300}BC
! 211: A\x{300}\x{301}\x{302}BC
! 212: *** Failers
! 213: \x{300}
! 214:
! 215: /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
! 216:
! 217: /^\p{Xan}/8
! 218: ABCD
! 219: 1234
! 220: \x{6ca}
! 221: \x{a6c}
! 222: \x{10a7}
! 223: ** Failers
! 224: _ABC
! 225:
! 226: /^\p{Xan}+/8
! 227: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 228: ** Failers
! 229: _ABC
! 230:
! 231: /^\p{Xan}+?/8
! 232: \x{6ca}\x{a6c}\x{10a7}_
! 233:
! 234: /^\p{Xan}*/8
! 235: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 236:
! 237: /^\p{Xan}{2,9}/8
! 238: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 239:
! 240: /^\p{Xan}{2,9}?/8
! 241: \x{6ca}\x{a6c}\x{10a7}_
! 242:
! 243: /^[\p{Xan}]/8
! 244: ABCD1234_
! 245: 1234abcd_
! 246: \x{6ca}
! 247: \x{a6c}
! 248: \x{10a7}
! 249: ** Failers
! 250: _ABC
! 251:
! 252: /^[\p{Xan}]+/8
! 253: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 254: ** Failers
! 255: _ABC
! 256:
! 257: /^>\p{Xsp}/8
! 258: >\x{1680}\x{2028}\x{0b}
! 259: >\x{a0}
! 260: ** Failers
! 261: \x{0b}
! 262:
! 263: /^>\p{Xsp}+/8
! 264: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 265:
! 266: /^>\p{Xsp}+?/8
! 267: >\x{1680}\x{2028}\x{0b}
! 268:
! 269: /^>\p{Xsp}*/8
! 270: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 271:
! 272: /^>\p{Xsp}{2,9}/8
! 273: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 274:
! 275: /^>\p{Xsp}{2,9}?/8
! 276: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 277:
! 278: /^>[\p{Xsp}]/8
! 279: >\x{2028}\x{0b}
! 280:
! 281: /^>[\p{Xsp}]+/8
! 282: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 283:
! 284: /^>\p{Xps}/8
! 285: >\x{1680}\x{2028}\x{0b}
! 286: >\x{a0}
! 287: ** Failers
! 288: \x{0b}
! 289:
! 290: /^>\p{Xps}+/8
! 291: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 292:
! 293: /^>\p{Xps}+?/8
! 294: >\x{1680}\x{2028}\x{0b}
! 295:
! 296: /^>\p{Xps}*/8
! 297: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 298:
! 299: /^>\p{Xps}{2,9}/8
! 300: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 301:
! 302: /^>\p{Xps}{2,9}?/8
! 303: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 304:
! 305: /^>[\p{Xps}]/8
! 306: >\x{2028}\x{0b}
! 307:
! 308: /^>[\p{Xps}]+/8
! 309: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 310:
! 311: /^\p{Xwd}/8
! 312: ABCD
! 313: 1234
! 314: \x{6ca}
! 315: \x{a6c}
! 316: \x{10a7}
! 317: _ABC
! 318: ** Failers
! 319: []
! 320:
! 321: /^\p{Xwd}+/8
! 322: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 323:
! 324: /^\p{Xwd}+?/8
! 325: \x{6ca}\x{a6c}\x{10a7}_
! 326:
! 327: /^\p{Xwd}*/8
! 328: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 329:
! 330: /^\p{Xwd}{2,9}/8
! 331: A_B12\x{6ca}\x{a6c}\x{10a7}
! 332:
! 333: /^\p{Xwd}{2,9}?/8
! 334: \x{6ca}\x{a6c}\x{10a7}_
! 335:
! 336: /^[\p{Xwd}]/8
! 337: ABCD1234_
! 338: 1234abcd_
! 339: \x{6ca}
! 340: \x{a6c}
! 341: \x{10a7}
! 342: _ABC
! 343: ** Failers
! 344: []
! 345:
! 346: /^[\p{Xwd}]+/8
! 347: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 348:
! 349: /-- A check not in UTF-8 mode --/
! 350:
! 351: /^[\p{Xwd}]+/
! 352: ABCD1234_
! 353:
! 354: /-- Some negative checks --/
! 355:
! 356: /^[\P{Xwd}]+/8
! 357: !.+\x{019}\x{35a}AB
! 358:
! 359: /^[\p{^Xwd}]+/8
! 360: !.+\x{019}\x{35a}AB
! 361:
! 362: /[\D]/WBZ8
! 363: 1\x{3c8}2
! 364:
! 365: /[\d]/WBZ8
! 366: >\x{6f4}<
! 367:
! 368: /[\S]/WBZ8
! 369: \x{1680}\x{6f4}\x{1680}
! 370:
! 371: /[\s]/WBZ8
! 372: >\x{1680}<
! 373:
! 374: /[\W]/WBZ8
! 375: A\x{1712}B
! 376:
! 377: /[\w]/WBZ8
! 378: >\x{1723}<
! 379:
! 380: /\D/WBZ8
! 381: 1\x{3c8}2
! 382:
! 383: /\d/WBZ8
! 384: >\x{6f4}<
! 385:
! 386: /\S/WBZ8
! 387: \x{1680}\x{6f4}\x{1680}
! 388:
! 389: /\s/WBZ8
! 390: >\x{1680}>
! 391:
! 392: /\W/WBZ8
! 393: A\x{1712}B
! 394:
! 395: /\w/WBZ8
! 396: >\x{1723}<
! 397:
! 398: /[[:alpha:]]/WBZ
! 399:
! 400: /[[:lower:]]/WBZ
! 401:
! 402: /[[:upper:]]/WBZ
! 403:
! 404: /[[:alnum:]]/WBZ
! 405:
! 406: /[[:ascii:]]/WBZ
! 407:
! 408: /[[:blank:]]/WBZ
! 409:
! 410: /[[:cntrl:]]/WBZ
! 411:
! 412: /[[:digit:]]/WBZ
! 413:
! 414: /[[:graph:]]/WBZ
! 415:
! 416: /[[:print:]]/WBZ
! 417:
! 418: /[[:punct:]]/WBZ
! 419:
! 420: /[[:space:]]/WBZ
! 421:
! 422: /[[:word:]]/WBZ
! 423:
! 424: /[[:xdigit:]]/WBZ
! 425:
! 426: /-- Unicode properties for \b abd \B --/
! 427:
! 428: /\b...\B/8W
! 429: abc_
! 430: \x{37e}abc\x{376}
! 431: \x{37e}\x{376}\x{371}\x{393}\x{394}
! 432: !\x{c0}++\x{c1}\x{c2}
! 433: !\x{c0}+++++
! 434:
! 435: /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
! 436:
! 437: /\b...\B/8
! 438: abc_
! 439: ** Failers
! 440: \x{37e}abc\x{376}
! 441: \x{37e}\x{376}\x{371}\x{393}\x{394}
! 442: !\x{c0}++\x{c1}\x{c2}
! 443: !\x{c0}+++++
! 444:
! 445: /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
! 446:
! 447: /\b...\B/W
! 448: abc_
! 449: !\x{c0}++\x{c1}\x{c2}
! 450: !\x{c0}+++++
! 451:
! 452: /-- POSIX interface --/
! 453:
! 454: /\w/P
! 455: +++\x{c2}
! 456:
! 457: /\w/WP
! 458: +++\x{c2}
! 459:
! 460: /-- Some of these are silly, but they check various combinations --/
! 461:
! 462: /[[:^alpha:][:^cntrl:]]+/8WBZ
! 463: 123
! 464: abc
! 465:
! 466: /[[:^cntrl:][:^alpha:]]+/8WBZ
! 467: 123
! 468: abc
! 469:
! 470: /[[:alpha:]]+/8WBZ
! 471: abc
! 472:
! 473: /[[:^alpha:]\S]+/8WBZ
! 474: 123
! 475: abc
! 476:
! 477: /[^\d]+/8WBZ
! 478: abc123
! 479: abc\x{123}
! 480: \x{660}abc
! 481:
! 482: /\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}/8iSI
! 483: \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
! 484: \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f}
! 485:
! 486: /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
! 487:
! 488: /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
! 489:
! 490: /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
! 491:
! 492: /\p{Han}+X\p{Greek}+\x{370}/BZ8
! 493:
! 494: /\p{Xan}+!\p{Xan}+A/BZ
! 495:
! 496: /\p{Xsp}+!\p{Xsp}\t/BZ
! 497:
! 498: /\p{Xps}+!\p{Xps}\t/BZ
! 499:
! 500: /\p{Xwd}+!\p{Xwd}_/BZ
! 501:
! 502: /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
! 503:
! 504: /-- These behaved oddly in Perl, so they are kept in this test --/
! 505:
! 506: /(\x{23a}\x{23a}\x{23a})?\1/8i
! 507: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
! 508:
! 509: /(ȺȺȺ)?\1/8i
! 510: ȺȺȺⱥⱥ
! 511:
! 512: /(\x{23a}\x{23a}\x{23a})?\1/8i
! 513: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
! 514:
! 515: /(ȺȺȺ)?\1/8i
! 516: ȺȺȺⱥⱥⱥ
! 517:
! 518: /(\x{23a}\x{23a}\x{23a})\1/8i
! 519: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
! 520:
! 521: /(ȺȺȺ)\1/8i
! 522: ȺȺȺⱥⱥ
! 523:
! 524: /(\x{23a}\x{23a}\x{23a})\1/8i
! 525: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
! 526:
! 527: /(ȺȺȺ)\1/8i
! 528: ȺȺȺⱥⱥⱥ
! 529:
! 530: /(\x{2c65}\x{2c65})\1/8i
! 531: \x{2c65}\x{2c65}\x{23a}\x{23a}
! 532:
! 533: /(ⱥⱥ)\1/8i
! 534: ⱥⱥȺȺ
! 535:
! 536: /(\x{23a}\x{23a}\x{23a})\1Y/8i
! 537: X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
! 538:
! 539: /(\x{2c65}\x{2c65})\1Y/8i
! 540: X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
! 541:
! 542: /-- --/
! 543:
! 544: /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
! 545:
! 546: /^[\p{Batak}]/8
! 547: \x{1bc0}
! 548: \x{1bff}
! 549: ** Failers
! 550: \x{1bf4}
! 551:
! 552: /^[\p{Brahmi}]/8
! 553: \x{11000}
! 554: \x{1106f}
! 555: ** Failers
! 556: \x{1104e}
! 557:
! 558: /^[\p{Mandaic}]/8
! 559: \x{840}
! 560: \x{85e}
! 561: ** Failers
! 562: \x{85c}
! 563: \x{85d}
! 564:
! 565: /-- --/
! 566:
! 567: /(\X*)(.)/s8
! 568: A\x{300}
! 569:
! 570: /^S(\X*)e(\X*)$/8
! 571: Stéréo
! 572:
! 573: /^\X/8
! 574: ́réo
! 575:
! 576: /^a\X41z/<JS>
! 577: aX41z
! 578: *** Failers
! 579: aAz
! 580:
! 581: /(?<=ab\Cde)X/8
! 582:
! 583: /-- End of testinput13 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>