Annotation of embedaddon/php/ext/pcre/pcrelib/testdata/testinput10, revision 1.1.1.2
1.1.1.2 ! misho 1: /-- This set of tests check Unicode property support with the DFA matching
! 2: functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest
! 3: when running it. --/
! 4:
! 5: /\pL\P{Nd}/8
! 6: AB
! 7: *** Failers
! 8: A0
! 9: 00
! 10:
! 11: /\X./8
! 12: AB
! 13: A\x{300}BC
! 14: A\x{300}\x{301}\x{302}BC
! 15: *** Failers
! 16: \x{300}
! 17:
! 18: /\X\X/8
! 19: ABC
! 20: A\x{300}B\x{300}\x{301}C
! 21: A\x{300}\x{301}\x{302}BC
! 22: *** Failers
! 23: \x{300}
! 24:
! 25: /^\pL+/8
! 26: abcd
! 27: a
! 28: *** Failers
! 29:
! 30: /^\PL+/8
! 31: 1234
! 32: =
! 33: *** Failers
! 34: abcd
! 35:
! 36: /^\X+/8
! 37: abcdA\x{300}\x{301}\x{302}
! 38: A\x{300}\x{301}\x{302}
! 39: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
! 40: a
! 41: *** Failers
! 42: \x{300}\x{301}\x{302}
! 43:
! 44: /\X?abc/8
! 45: abc
! 46: A\x{300}abc
! 47: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
! 48: \x{300}abc
! 49: *** Failers
! 50:
! 51: /^\X?abc/8
! 52: abc
! 53: A\x{300}abc
! 54: *** Failers
! 55: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
! 56: \x{300}abc
! 57:
! 58: /\X*abc/8
! 59: abc
! 60: A\x{300}abc
! 61: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
! 62: \x{300}abc
! 63: *** Failers
! 64:
! 65: /^\X*abc/8
! 66: abc
! 67: A\x{300}abc
! 68: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
! 69: *** Failers
! 70: \x{300}abc
! 71:
! 72: /^\pL?=./8
! 73: A=b
! 74: =c
! 75: *** Failers
! 76: 1=2
! 77: AAAA=b
! 78:
! 79: /^\pL*=./8
! 80: AAAA=b
! 81: =c
! 82: *** Failers
! 83: 1=2
! 84:
! 85: /^\X{2,3}X/8
! 86: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
! 87: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
! 88: *** Failers
! 89: X
! 90: A\x{300}\x{301}\x{302}X
! 91: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
! 92:
! 93: /^\pC\pL\pM\pN\pP\pS\pZ</8
! 94: \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
! 95: \np\x{300}9!\$ <
! 96: ** Failers
! 97: ap\x{300}9!\$ <
! 98:
! 99: /^\PC/8
! 100: X
! 101: ** Failers
! 102: \x7f
! 103:
! 104: /^\PL/8
! 105: 9
! 106: ** Failers
! 107: \x{c0}
! 108:
! 109: /^\PM/8
! 110: X
! 111: ** Failers
! 112: \x{30f}
! 113:
! 114: /^\PN/8
! 115: X
! 116: ** Failers
! 117: \x{660}
! 118:
! 119: /^\PP/8
! 120: X
! 121: ** Failers
! 122: \x{66c}
! 123:
! 124: /^\PS/8
! 125: X
! 126: ** Failers
! 127: \x{f01}
! 128:
! 129: /^\PZ/8
! 130: X
! 131: ** Failers
! 132: \x{1680}
! 133:
! 134: /^\p{Cc}/8
! 135: \x{017}
! 136: \x{09f}
! 137: ** Failers
! 138: \x{0600}
! 139:
! 140: /^\p{Cf}/8
! 141: \x{601}
! 142: ** Failers
! 143: \x{09f}
! 144:
! 145: /^\p{Cn}/8
! 146: ** Failers
! 147: \x{09f}
! 148:
! 149: /^\p{Co}/8
! 150: \x{f8ff}
! 151: ** Failers
! 152: \x{09f}
! 153:
! 154: /^\p{Cs}/8
! 155: \?\x{dfff}
! 156: ** Failers
! 157: \x{09f}
! 158:
! 159: /^\p{Ll}/8
! 160: a
! 161: ** Failers
! 162: Z
! 163: \x{e000}
! 164:
! 165: /^\p{Lm}/8
! 166: \x{2b0}
! 167: ** Failers
! 168: a
! 169:
! 170: /^\p{Lo}/8
! 171: \x{1bb}
! 172: ** Failers
! 173: a
! 174: \x{2b0}
! 175:
! 176: /^\p{Lt}/8
! 177: \x{1c5}
! 178: ** Failers
! 179: a
! 180: \x{2b0}
! 181:
! 182: /^\p{Lu}/8
! 183: A
! 184: ** Failers
! 185: \x{2b0}
! 186:
! 187: /^\p{Mc}/8
! 188: \x{903}
! 189: ** Failers
! 190: X
! 191: \x{300}
! 192:
! 193: /^\p{Me}/8
! 194: \x{488}
! 195: ** Failers
! 196: X
! 197: \x{903}
! 198: \x{300}
! 199:
! 200: /^\p{Mn}/8
! 201: \x{300}
! 202: ** Failers
! 203: X
! 204: \x{903}
! 205:
! 206: /^\p{Nd}+/8
! 207: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
! 208: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
! 209: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
! 210: ** Failers
! 211: X
! 212:
! 213: /^\p{Nl}/8
! 214: \x{16ee}
! 215: ** Failers
! 216: X
! 217: \x{966}
! 218:
! 219: /^\p{No}/8
! 220: \x{b2}
! 221: \x{b3}
! 222: ** Failers
! 223: X
! 224: \x{16ee}
! 225:
! 226: /^\p{Pc}/8
! 227: \x5f
! 228: \x{203f}
! 229: ** Failers
! 230: X
! 231: -
! 232: \x{58a}
! 233:
! 234: /^\p{Pd}/8
! 235: -
! 236: \x{58a}
! 237: ** Failers
! 238: X
! 239: \x{203f}
! 240:
! 241: /^\p{Pe}/8
! 242: )
! 243: ]
! 244: }
! 245: \x{f3b}
! 246: ** Failers
! 247: X
! 248: \x{203f}
! 249: (
! 250: [
! 251: {
! 252: \x{f3c}
! 253:
! 254: /^\p{Pf}/8
! 255: \x{bb}
! 256: \x{2019}
! 257: ** Failers
! 258: X
! 259: \x{203f}
! 260:
! 261: /^\p{Pi}/8
! 262: \x{ab}
! 263: \x{2018}
! 264: ** Failers
! 265: X
! 266: \x{203f}
! 267:
! 268: /^\p{Po}/8
! 269: !
! 270: \x{37e}
! 271: ** Failers
! 272: X
! 273: \x{203f}
! 274:
! 275: /^\p{Ps}/8
! 276: (
! 277: [
! 278: {
! 279: \x{f3c}
! 280: ** Failers
! 281: X
! 282: )
! 283: ]
! 284: }
! 285: \x{f3b}
! 286:
! 287: /^\p{Sc}+/8
! 288: $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
! 289: \x{9f2}
! 290: ** Failers
! 291: X
! 292: \x{2c2}
! 293:
! 294: /^\p{Sk}/8
! 295: \x{2c2}
! 296: ** Failers
! 297: X
! 298: \x{9f2}
! 299:
! 300: /^\p{Sm}+/8
! 301: +<|~\x{ac}\x{2044}
! 302: ** Failers
! 303: X
! 304: \x{9f2}
! 305:
! 306: /^\p{So}/8
! 307: \x{a6}
! 308: \x{482}
! 309: ** Failers
! 310: X
! 311: \x{9f2}
! 312:
! 313: /^\p{Zl}/8
! 314: \x{2028}
! 315: ** Failers
! 316: X
! 317: \x{2029}
! 318:
! 319: /^\p{Zp}/8
! 320: \x{2029}
! 321: ** Failers
! 322: X
! 323: \x{2028}
! 324:
! 325: /^\p{Zs}/8
! 326: \ \
! 327: \x{a0}
! 328: \x{1680}
! 329: \x{180e}
! 330: \x{2000}
! 331: \x{2001}
! 332: ** Failers
! 333: \x{2028}
! 334: \x{200d}
! 335:
! 336: /\p{Nd}+(..)/8
! 337: \x{660}\x{661}\x{662}ABC
! 338:
! 339: /\p{Nd}+?(..)/8
! 340: \x{660}\x{661}\x{662}ABC
! 341:
! 342: /\p{Nd}{2,}(..)/8
! 343: \x{660}\x{661}\x{662}ABC
! 344:
! 345: /\p{Nd}{2,}?(..)/8
! 346: \x{660}\x{661}\x{662}ABC
! 347:
! 348: /\p{Nd}*(..)/8
! 349: \x{660}\x{661}\x{662}ABC
! 350:
! 351: /\p{Nd}*?(..)/8
! 352: \x{660}\x{661}\x{662}ABC
! 353:
! 354: /\p{Nd}{2}(..)/8
! 355: \x{660}\x{661}\x{662}ABC
! 356:
! 357: /\p{Nd}{2,3}(..)/8
! 358: \x{660}\x{661}\x{662}ABC
! 359:
! 360: /\p{Nd}{2,3}?(..)/8
! 361: \x{660}\x{661}\x{662}ABC
! 362:
! 363: /\p{Nd}?(..)/8
! 364: \x{660}\x{661}\x{662}ABC
! 365:
! 366: /\p{Nd}??(..)/8
! 367: \x{660}\x{661}\x{662}ABC
! 368:
! 369: /\p{Nd}*+(..)/8
! 370: \x{660}\x{661}\x{662}ABC
! 371:
! 372: /\p{Nd}*+(...)/8
! 373: \x{660}\x{661}\x{662}ABC
! 374:
! 375: /\p{Nd}*+(....)/8
! 376: ** Failers
! 377: \x{660}\x{661}\x{662}ABC
! 378:
! 379: /\p{Lu}/8i
! 380: A
! 381: a\x{10a0}B
! 382: ** Failers
! 383: a
! 384: \x{1d00}
! 385:
! 386: /\p{^Lu}/8i
! 387: 1234
! 388: ** Failers
! 389: ABC
! 390:
! 391: /\P{Lu}/8i
! 392: 1234
! 393: ** Failers
! 394: ABC
! 395:
! 396: /(?<=A\p{Nd})XYZ/8
! 397: A2XYZ
! 398: 123A5XYZPQR
! 399: ABA\x{660}XYZpqr
! 400: ** Failers
! 401: AXYZ
! 402: XYZ
! 403:
! 404: /(?<!\pL)XYZ/8
! 405: 1XYZ
! 406: AB=XYZ..
! 407: XYZ
! 408: ** Failers
! 409: WXYZ
! 410:
! 411: /[\p{Nd}]/8
! 412: 1234
! 413:
! 414: /[\p{Nd}+-]+/8
! 415: 1234
! 416: 12-34
! 417: 12+\x{661}-34
! 418: ** Failers
! 419: abcd
! 420:
! 421: /[\P{Nd}]+/8
! 422: abcd
! 423: ** Failers
! 424: 1234
! 425:
! 426: /\D+/8
! 427: 11111111111111111111111111111111111111111111111111111111111111111111111
! 428: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 429:
! 430: /\P{Nd}+/8
! 431: 11111111111111111111111111111111111111111111111111111111111111111111111
! 432: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 433:
! 434: /[\D]+/8
! 435: 11111111111111111111111111111111111111111111111111111111111111111111111
! 436: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 437:
! 438: /[\P{Nd}]+/8
! 439: 11111111111111111111111111111111111111111111111111111111111111111111111
! 440: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 441:
! 442: /[\D\P{Nd}]+/8
! 443: 11111111111111111111111111111111111111111111111111111111111111111111111
! 444: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 445:
! 446: /\pL/8
! 447: a
! 448: A
! 449:
! 450: /\pL/8i
! 451: a
! 452: A
! 453:
! 454: /\p{Lu}/8
! 455: A
! 456: aZ
! 457: ** Failers
! 458: abc
! 459:
! 460: /\p{Lu}/8i
! 461: A
! 462: aZ
! 463: ** Failers
! 464: abc
! 465:
! 466: /\p{Ll}/8
! 467: a
! 468: Az
! 469: ** Failers
! 470: ABC
! 471:
! 472: /\p{Ll}/8i
! 473: a
! 474: Az
! 475: ** Failers
! 476: ABC
! 477:
! 478: /^\x{c0}$/8i
! 479: \x{c0}
! 480: \x{e0}
! 481:
! 482: /^\x{e0}$/8i
! 483: \x{c0}
! 484: \x{e0}
! 485:
! 486: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8
! 487: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
! 488: ** Failers
! 489: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
! 490: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
! 491: A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
! 492: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
! 493: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
! 494:
! 495: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i
! 496: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
! 497: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
! 498: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
! 499: A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
! 500: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
! 501: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
! 502:
! 503: /\x{391}+/8i
! 504: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
! 505:
! 506: /\x{391}{3,5}(.)/8i
! 507: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
! 508:
! 509: /\x{391}{3,5}?(.)/8i
! 510: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
! 511:
! 512: /[\x{391}\x{ff3a}]/8i
! 513: \x{391}
! 514: \x{ff3a}
! 515: \x{3b1}
! 516: \x{ff5a}
! 517:
! 518: /[\x{c0}\x{391}]/8i
! 519: \x{c0}
! 520: \x{e0}
! 521:
! 522: /[\x{105}-\x{109}]/8i
! 523: \x{104}
! 524: \x{105}
! 525: \x{109}
! 526: ** Failers
! 527: \x{100}
! 528: \x{10a}
! 529:
! 530: /[z-\x{100}]/8i
! 531: Z
! 532: z
! 533: \x{39c}
! 534: \x{178}
! 535: |
! 536: \x{80}
! 537: \x{ff}
! 538: \x{100}
! 539: \x{101}
! 540: ** Failers
! 541: \x{102}
! 542: Y
! 543: y
! 544:
! 545: /[z-\x{100}]/8i
! 546:
! 547: /^\X/8
! 548: A
! 549: A\x{300}BC
! 550: A\x{300}\x{301}\x{302}BC
! 551: *** Failers
! 552: \x{300}
! 553:
! 554: /^[\X]/8
! 555: X123
! 556: *** Failers
! 557: AXYZ
! 558:
! 559: /^(\X*)C/8
! 560: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
! 561: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
! 562:
! 563: /^(\X*?)C/8
! 564: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
! 565: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
! 566:
! 567: /^(\X*)(.)/8
! 568: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
! 569: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
! 570:
! 571: /^(\X*?)(.)/8
! 572: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
! 573: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
! 574:
! 575: /^\X(.)/8
! 576: *** Failers
! 577: A\x{300}\x{301}\x{302}
! 578:
! 579: /^\X{2,3}(.)/8
! 580: A\x{300}\x{301}B\x{300}X
! 581: A\x{300}\x{301}B\x{300}C\x{300}\x{301}
! 582: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
! 583: A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
! 584:
! 585: /^\X{2,3}?(.)/8
! 586: A\x{300}\x{301}B\x{300}X
! 587: A\x{300}\x{301}B\x{300}C\x{300}\x{301}
! 588: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
! 589: A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
! 590:
! 591: /^\pN{2,3}X/
! 592: 12X
! 593: 123X
! 594: *** Failers
! 595: X
! 596: 1X
! 597: 1234X
! 598:
! 599: /\x{100}/i8
! 600: \x{100}
! 601: \x{101}
! 602:
! 603: /^\p{Han}+/8
! 604: \x{2e81}\x{3007}\x{2f804}\x{31a0}
! 605: ** Failers
! 606: \x{2e7f}
! 607:
! 608: /^\P{Katakana}+/8
! 609: \x{3105}
! 610: ** Failers
! 611: \x{30ff}
! 612:
! 613: /^[\p{Arabic}]/8
! 614: \x{06e9}
! 615: \x{060b}
! 616: ** Failers
! 617: X\x{06e9}
! 618:
! 619: /^[\P{Yi}]/8
! 620: \x{2f800}
! 621: ** Failers
! 622: \x{a014}
! 623: \x{a4c6}
! 624:
! 625: /^\p{Any}X/8
! 626: AXYZ
! 627: \x{1234}XYZ
! 628: ** Failers
! 629: X
! 630:
! 631: /^\P{Any}X/8
! 632: ** Failers
! 633: AX
! 634:
! 635: /^\p{Any}?X/8
! 636: XYZ
! 637: AXYZ
! 638: \x{1234}XYZ
! 639: ** Failers
! 640: ABXYZ
! 641:
! 642: /^\P{Any}?X/8
! 643: XYZ
! 644: ** Failers
! 645: AXYZ
! 646: \x{1234}XYZ
! 647: ABXYZ
! 648:
! 649: /^\p{Any}+X/8
! 650: AXYZ
! 651: \x{1234}XYZ
! 652: A\x{1234}XYZ
! 653: ** Failers
! 654: XYZ
! 655:
! 656: /^\P{Any}+X/8
! 657: ** Failers
! 658: AXYZ
! 659: \x{1234}XYZ
! 660: A\x{1234}XYZ
! 661: XYZ
! 662:
! 663: /^\p{Any}*X/8
! 664: XYZ
! 665: AXYZ
! 666: \x{1234}XYZ
! 667: A\x{1234}XYZ
! 668: ** Failers
! 669:
! 670: /^\P{Any}*X/8
! 671: XYZ
! 672: ** Failers
! 673: AXYZ
! 674: \x{1234}XYZ
! 675: A\x{1234}XYZ
! 676:
! 677: /^[\p{Any}]X/8
! 678: AXYZ
! 679: \x{1234}XYZ
! 680: ** Failers
! 681: X
! 682:
! 683: /^[\P{Any}]X/8
! 684: ** Failers
! 685: AX
! 686:
! 687: /^[\p{Any}]?X/8
! 688: XYZ
! 689: AXYZ
! 690: \x{1234}XYZ
! 691: ** Failers
! 692: ABXYZ
! 693:
! 694: /^[\P{Any}]?X/8
! 695: XYZ
! 696: ** Failers
! 697: AXYZ
! 698: \x{1234}XYZ
! 699: ABXYZ
! 700:
! 701: /^[\p{Any}]+X/8
! 702: AXYZ
! 703: \x{1234}XYZ
! 704: A\x{1234}XYZ
! 705: ** Failers
! 706: XYZ
! 707:
! 708: /^[\P{Any}]+X/8
! 709: ** Failers
! 710: AXYZ
! 711: \x{1234}XYZ
! 712: A\x{1234}XYZ
! 713: XYZ
! 714:
! 715: /^[\p{Any}]*X/8
! 716: XYZ
! 717: AXYZ
! 718: \x{1234}XYZ
! 719: A\x{1234}XYZ
! 720: ** Failers
! 721:
! 722: /^[\P{Any}]*X/8
! 723: XYZ
! 724: ** Failers
! 725: AXYZ
! 726: \x{1234}XYZ
! 727: A\x{1234}XYZ
! 728:
! 729: /^\p{Any}{3,5}?/8
! 730: abcdefgh
! 731: \x{1234}\n\r\x{3456}xyz
! 732:
! 733: /^\p{Any}{3,5}/8
! 734: abcdefgh
! 735: \x{1234}\n\r\x{3456}xyz
! 736:
! 737: /^\P{Any}{3,5}?/8
! 738: ** Failers
! 739: abcdefgh
! 740: \x{1234}\n\r\x{3456}xyz
! 741:
! 742: /^\p{L&}X/8
! 743: AXY
! 744: aXY
! 745: \x{1c5}XY
! 746: ** Failers
! 747: \x{1bb}XY
! 748: \x{2b0}XY
! 749: !XY
! 750:
! 751: /^[\p{L&}]X/8
! 752: AXY
! 753: aXY
! 754: \x{1c5}XY
! 755: ** Failers
! 756: \x{1bb}XY
! 757: \x{2b0}XY
! 758: !XY
! 759:
! 760: /^\p{L&}+X/8
! 761: AXY
! 762: aXY
! 763: AbcdeXyz
! 764: \x{1c5}AbXY
! 765: abcDEXypqreXlmn
! 766: ** Failers
! 767: \x{1bb}XY
! 768: \x{2b0}XY
! 769: !XY
! 770:
! 771: /^[\p{L&}]+X/8
! 772: AXY
! 773: aXY
! 774: AbcdeXyz
! 775: \x{1c5}AbXY
! 776: abcDEXypqreXlmn
! 777: ** Failers
! 778: \x{1bb}XY
! 779: \x{2b0}XY
! 780: !XY
! 781:
! 782: /^\p{L&}+?X/8
! 783: AXY
! 784: aXY
! 785: AbcdeXyz
! 786: \x{1c5}AbXY
! 787: abcDEXypqreXlmn
! 788: ** Failers
! 789: \x{1bb}XY
! 790: \x{2b0}XY
! 791: !XY
! 792:
! 793: /^[\p{L&}]+?X/8
! 794: AXY
! 795: aXY
! 796: AbcdeXyz
! 797: \x{1c5}AbXY
! 798: abcDEXypqreXlmn
! 799: ** Failers
! 800: \x{1bb}XY
! 801: \x{2b0}XY
! 802: !XY
! 803:
! 804: /^\P{L&}X/8
! 805: !XY
! 806: \x{1bb}XY
! 807: \x{2b0}XY
! 808: ** Failers
! 809: \x{1c5}XY
! 810: AXY
! 811:
! 812: /^[\P{L&}]X/8
! 813: !XY
! 814: \x{1bb}XY
! 815: \x{2b0}XY
! 816: ** Failers
! 817: \x{1c5}XY
! 818: AXY
! 819:
! 820: /^\x{023a}+?(\x{0130}+)/8i
! 821: \x{023a}\x{2c65}\x{0130}
! 822:
! 823: /^\x{023a}+([^X])/8i
! 824: \x{023a}\x{2c65}X
! 825:
! 826: /\x{c0}+\x{116}+/8i
! 827: \x{c0}\x{e0}\x{116}\x{117}
! 828:
! 829: /[\x{c0}\x{116}]+/8i
! 830: \x{c0}\x{e0}\x{116}\x{117}
! 831:
! 832: /Check property support in non-UTF-8 mode/
! 833:
! 834: /\p{L}{4}/
! 835: 123abcdefg
! 836: 123abc\xc4\xc5zz
! 837:
! 838: /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8
! 839: \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
! 840:
! 841: /\x{a77d}\x{1d79}/8i
! 842: \x{a77d}\x{1d79}
! 843: \x{1d79}\x{a77d}
! 844:
! 845: /\x{a77d}\x{1d79}/8
! 846: \x{a77d}\x{1d79}
! 847: ** Failers
! 848: \x{1d79}\x{a77d}
! 849:
! 850: /^\p{Xan}/8
! 851: ABCD
! 852: 1234
! 853: \x{6ca}
! 854: \x{a6c}
! 855: \x{10a7}
! 856: ** Failers
! 857: _ABC
! 858:
! 859: /^\p{Xan}+/8
! 860: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 861: ** Failers
! 862: _ABC
! 863:
! 864: /^\p{Xan}*/8
! 865: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 866:
! 867: /^\p{Xan}{2,9}/8
! 868: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 869:
! 870: /^[\p{Xan}]/8
! 871: ABCD1234_
! 872: 1234abcd_
! 873: \x{6ca}
! 874: \x{a6c}
! 875: \x{10a7}
! 876: ** Failers
! 877: _ABC
! 878:
! 879: /^[\p{Xan}]+/8
! 880: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 881: ** Failers
! 882: _ABC
! 883:
! 884: /^>\p{Xsp}/8
! 885: >\x{1680}\x{2028}\x{0b}
! 886: ** Failers
! 887: \x{0b}
! 888:
! 889: /^>\p{Xsp}+/8
! 890: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 891:
! 892: /^>\p{Xsp}*/8
! 893: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 894:
! 895: /^>\p{Xsp}{2,9}/8
! 896: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 897:
! 898: /^>[\p{Xsp}]/8
! 899: >\x{2028}\x{0b}
! 900:
! 901: /^>[\p{Xsp}]+/8
! 902: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 903:
! 904: /^>\p{Xps}/8
! 905: >\x{1680}\x{2028}\x{0b}
! 906: >\x{a0}
! 907: ** Failers
! 908: \x{0b}
! 909:
! 910: /^>\p{Xps}+/8
! 911: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1.1 misho 912:
1.1.1.2 ! misho 913: /^>\p{Xps}+?/8
! 914: >\x{1680}\x{2028}\x{0b}
1.1 misho 915:
1.1.1.2 ! misho 916: /^>\p{Xps}*/8
! 917: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 918:
! 919: /^>\p{Xps}{2,9}/8
! 920: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 921:
! 922: /^>\p{Xps}{2,9}?/8
! 923: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 924:
! 925: /^>[\p{Xps}]/8
! 926: >\x{2028}\x{0b}
! 927:
! 928: /^>[\p{Xps}]+/8
! 929: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
! 930:
! 931: /^\p{Xwd}/8
! 932: ABCD
! 933: 1234
! 934: \x{6ca}
! 935: \x{a6c}
! 936: \x{10a7}
! 937: _ABC
! 938: ** Failers
! 939: []
! 940:
! 941: /^\p{Xwd}+/8
! 942: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 943:
! 944: /^\p{Xwd}*/8
! 945: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 946:
! 947: /^\p{Xwd}{2,9}/8
! 948: A_12\x{6ca}\x{a6c}\x{10a7}
! 949:
! 950: /^[\p{Xwd}]/8
! 951: ABCD1234_
! 952: 1234abcd_
! 953: \x{6ca}
! 954: \x{a6c}
! 955: \x{10a7}
! 956: _ABC
! 957: ** Failers
! 958: []
! 959:
! 960: /^[\p{Xwd}]+/8
! 961: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
! 962:
! 963: /-- Unicode properties for \b abd \B --/
! 964:
! 965: /\b...\B/8W
! 966: abc_
! 967: \x{37e}abc\x{376}
! 968: \x{37e}\x{376}\x{371}\x{393}\x{394}
! 969: !\x{c0}++\x{c1}\x{c2}
! 970: !\x{c0}+++++
! 971:
! 972: /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
! 973:
! 974: /\b...\B/8
! 975: abc_
! 976: ** Failers
! 977: \x{37e}abc\x{376}
! 978: \x{37e}\x{376}\x{371}\x{393}\x{394}
! 979: !\x{c0}++\x{c1}\x{c2}
! 980: !\x{c0}+++++
! 981:
! 982: /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
! 983:
! 984: /\b...\B/W
! 985: abc_
! 986: !\x{c0}++\x{c1}\x{c2}
! 987: !\x{c0}+++++
! 988:
! 989: /-- Caseless single negated characters > 127 need UCP support --/
! 990:
! 991: /[^\x{100}]/8i
! 992: \x{100}\x{101}X
! 993:
! 994: /[^\x{100}]+/8i
! 995: \x{100}\x{101}XX
! 996:
! 997: /^\X/8
! 998: A\P
! 999: A\P\P
! 1000: A\x{300}\x{301}\P
! 1001: A\x{300}\x{301}\P\P
! 1002: A\x{301}\P
! 1003: A\x{301}\P\P
! 1004:
! 1005: /^\X{2,3}/8
! 1006: A\P
! 1007: A\P\P
! 1008: AA\P
! 1009: AA\P\P
! 1010: A\x{300}\x{301}\P
! 1011: A\x{300}\x{301}\P\P
! 1012: A\x{300}\x{301}A\x{300}\x{301}\P
! 1013: A\x{300}\x{301}A\x{300}\x{301}\P\P
! 1014:
! 1015: /^\X{2}/8
! 1016: AA\P
! 1017: AA\P\P
! 1018: A\x{300}\x{301}A\x{300}\x{301}\P
! 1019: A\x{300}\x{301}A\x{300}\x{301}\P\P
! 1020:
! 1021: /^\X+/8
! 1022: AA\P
! 1023: AA\P\P
! 1024:
! 1025: /^\X+?Z/8
! 1026: AA\P
! 1027: AA\P\P
! 1028:
! 1029: /-- These are tests for extended grapheme clusters --/
! 1030:
! 1031: /^\X/8+
! 1032: G\x{34e}\x{34e}X
! 1033: \x{34e}\x{34e}X
! 1034: \x04X
! 1035: \x{1100}X
! 1036: \x{1100}\x{34e}X
! 1037: \x{1b04}\x{1b04}X
! 1038: *These match up to the roman letters
! 1039: \x{1111}\x{1111}L,L
! 1040: \x{1111}\x{1111}\x{1169}L,L,V
! 1041: \x{1111}\x{ae4c}L, LV
! 1042: \x{1111}\x{ad89}L, LVT
! 1043: \x{1111}\x{ae4c}\x{1169}L, LV, V
! 1044: \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
! 1045: \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
! 1046: \x{1111}\x{ad89}\x{11fe}L, LVT, T
! 1047: \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
! 1048: \x{ad89}\x{11fe}\x{11fe}LVT, T, T
! 1049: *These match just the first codepoint (invalid sequence)
! 1050: \x{1111}\x{11fe}L, T
! 1051: \x{ae4c}\x{1111}LV, L
! 1052: \x{ae4c}\x{ae4c}LV, LV
! 1053: \x{ae4c}\x{ad89}LV, LVT
! 1054: \x{1169}\x{1111}V, L
! 1055: \x{1169}\x{ae4c}V, LV
! 1056: \x{1169}\x{ad89}V, LVT
! 1057: \x{ad89}\x{1111}LVT, L
! 1058: \x{ad89}\x{1169}LVT, V
! 1059: \x{ad89}\x{ae4c}LVT, LV
! 1060: \x{ad89}\x{ad89}LVT, LVT
! 1061: \x{11fe}\x{1111}T, L
! 1062: \x{11fe}\x{1169}T, V
! 1063: \x{11fe}\x{ae4c}T, LV
! 1064: \x{11fe}\x{ad89}T, LVT
! 1065: *Test extend and spacing mark
! 1066: \x{1111}\x{ae4c}\x{0711}L, LV, extend
! 1067: \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
! 1068: \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
! 1069: *Test CR, LF, and control
! 1070: \x0d\x{0711}CR, extend
! 1071: \x0d\x{1b04}CR, spacingmark
! 1072: \x0a\x{0711}LF, extend
! 1073: \x0a\x{1b04}LF, spacingmark
! 1074: \x0b\x{0711}Control, extend
! 1075: \x09\x{1b04}Control, spacingmark
! 1076: *There are no Prepend characters, so we can't test Prepend, CR
! 1077:
! 1078: /^(?>\X{2})X/8+
! 1079: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
! 1080:
! 1081: /^\X{2,4}X/8+
! 1082: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
! 1083: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
! 1084: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1.1 misho 1085:
1.1.1.2 ! misho 1086: /^\X{2,4}?X/8+
! 1087: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
! 1088: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
! 1089: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1.1 misho 1090:
1.1.1.2 ! misho 1091: /-- --/
1.1 misho 1092:
1.1.1.2 ! misho 1093: /\x{1e9e}+/8i
! 1094: \x{1e9e}\x{00df}
1.1 misho 1095:
1.1.1.2 ! misho 1096: /[z\x{1e9e}]+/8i
! 1097: \x{1e9e}\x{00df}
1.1 misho 1098:
1.1.1.2 ! misho 1099: /\x{00df}+/8i
! 1100: \x{1e9e}\x{00df}
1.1 misho 1101:
1.1.1.2 ! misho 1102: /[z\x{00df}]+/8i
! 1103: \x{1e9e}\x{00df}
1.1 misho 1104:
1.1.1.2 ! misho 1105: /\x{1f88}+/8i
! 1106: \x{1f88}\x{1f80}
1.1 misho 1107:
1.1.1.2 ! misho 1108: /[z\x{1f88}]+/8i
! 1109: \x{1f88}\x{1f80}
1.1 misho 1110:
1.1.1.2 ! misho 1111: /-- Perl matches these --/
1.1 misho 1112:
1.1.1.2 ! misho 1113: /\x{00b5}+/8i
! 1114: \x{00b5}\x{039c}\x{03bc}
1.1 misho 1115:
1.1.1.2 ! misho 1116: /\x{039c}+/8i
! 1117: \x{00b5}\x{039c}\x{03bc}
1.1 misho 1118:
1.1.1.2 ! misho 1119: /\x{03bc}+/8i
! 1120: \x{00b5}\x{039c}\x{03bc}
1.1 misho 1121:
1122:
1.1.1.2 ! misho 1123: /\x{00c5}+/8i
! 1124: \x{00c5}\x{00e5}\x{212b}
1.1 misho 1125:
1.1.1.2 ! misho 1126: /\x{00e5}+/8i
! 1127: \x{00c5}\x{00e5}\x{212b}
1.1 misho 1128:
1.1.1.2 ! misho 1129: /\x{212b}+/8i
! 1130: \x{00c5}\x{00e5}\x{212b}
1.1 misho 1131:
1132:
1.1.1.2 ! misho 1133: /\x{01c4}+/8i
! 1134: \x{01c4}\x{01c5}\x{01c6}
1.1 misho 1135:
1.1.1.2 ! misho 1136: /\x{01c5}+/8i
! 1137: \x{01c4}\x{01c5}\x{01c6}
1.1 misho 1138:
1.1.1.2 ! misho 1139: /\x{01c6}+/8i
! 1140: \x{01c4}\x{01c5}\x{01c6}
1.1 misho 1141:
1142:
1.1.1.2 ! misho 1143: /\x{01c7}+/8i
! 1144: \x{01c7}\x{01c8}\x{01c9}
1.1 misho 1145:
1.1.1.2 ! misho 1146: /\x{01c8}+/8i
! 1147: \x{01c7}\x{01c8}\x{01c9}
1.1 misho 1148:
1.1.1.2 ! misho 1149: /\x{01c9}+/8i
! 1150: \x{01c7}\x{01c8}\x{01c9}
1.1 misho 1151:
1152:
1.1.1.2 ! misho 1153: /\x{01ca}+/8i
! 1154: \x{01ca}\x{01cb}\x{01cc}
1.1 misho 1155:
1.1.1.2 ! misho 1156: /\x{01cb}+/8i
! 1157: \x{01ca}\x{01cb}\x{01cc}
1.1 misho 1158:
1.1.1.2 ! misho 1159: /\x{01cc}+/8i
! 1160: \x{01ca}\x{01cb}\x{01cc}
1.1 misho 1161:
1162:
1.1.1.2 ! misho 1163: /\x{01f1}+/8i
! 1164: \x{01f1}\x{01f2}\x{01f3}
! 1165:
! 1166: /\x{01f2}+/8i
! 1167: \x{01f1}\x{01f2}\x{01f3}
! 1168:
! 1169: /\x{01f3}+/8i
! 1170: \x{01f1}\x{01f2}\x{01f3}
! 1171:
! 1172:
! 1173: /\x{0345}+/8i
! 1174: \x{0345}\x{0399}\x{03b9}\x{1fbe}
! 1175:
! 1176: /\x{0399}+/8i
! 1177: \x{0345}\x{0399}\x{03b9}\x{1fbe}
! 1178:
! 1179: /\x{03b9}+/8i
! 1180: \x{0345}\x{0399}\x{03b9}\x{1fbe}
! 1181:
! 1182: /\x{1fbe}+/8i
! 1183: \x{0345}\x{0399}\x{03b9}\x{1fbe}
! 1184:
! 1185:
! 1186: /\x{0392}+/8i
! 1187: \x{0392}\x{03b2}\x{03d0}
! 1188:
! 1189: /\x{03b2}+/8i
! 1190: \x{0392}\x{03b2}\x{03d0}
! 1191:
! 1192: /\x{03d0}+/8i
! 1193: \x{0392}\x{03b2}\x{03d0}
1.1 misho 1194:
1195:
1.1.1.2 ! misho 1196: /\x{0395}+/8i
! 1197: \x{0395}\x{03b5}\x{03f5}
! 1198:
! 1199: /\x{03b5}+/8i
! 1200: \x{0395}\x{03b5}\x{03f5}
! 1201:
! 1202: /\x{03f5}+/8i
! 1203: \x{0395}\x{03b5}\x{03f5}
1.1 misho 1204:
1205:
1.1.1.2 ! misho 1206: /\x{0398}+/8i
! 1207: \x{0398}\x{03b8}\x{03d1}\x{03f4}
1.1 misho 1208:
1.1.1.2 ! misho 1209: /\x{03b8}+/8i
! 1210: \x{0398}\x{03b8}\x{03d1}\x{03f4}
1.1 misho 1211:
1.1.1.2 ! misho 1212: /\x{03d1}+/8i
! 1213: \x{0398}\x{03b8}\x{03d1}\x{03f4}
1.1 misho 1214:
1.1.1.2 ! misho 1215: /\x{03f4}+/8i
! 1216: \x{0398}\x{03b8}\x{03d1}\x{03f4}
! 1217:
! 1218:
! 1219: /\x{039a}+/8i
! 1220: \x{039a}\x{03ba}\x{03f0}
1.1 misho 1221:
1.1.1.2 ! misho 1222: /\x{03ba}+/8i
! 1223: \x{039a}\x{03ba}\x{03f0}
! 1224:
! 1225: /\x{03f0}+/8i
! 1226: \x{039a}\x{03ba}\x{03f0}
! 1227:
1.1 misho 1228:
1.1.1.2 ! misho 1229: /\x{03a0}+/8i
! 1230: \x{03a0}\x{03c0}\x{03d6}
1.1 misho 1231:
1.1.1.2 ! misho 1232: /\x{03c0}+/8i
! 1233: \x{03a0}\x{03c0}\x{03d6}
1.1 misho 1234:
1.1.1.2 ! misho 1235: /\x{03d6}+/8i
! 1236: \x{03a0}\x{03c0}\x{03d6}
1.1 misho 1237:
1238:
1.1.1.2 ! misho 1239: /\x{03a1}+/8i
! 1240: \x{03a1}\x{03c1}\x{03f1}
1.1 misho 1241:
1.1.1.2 ! misho 1242: /\x{03c1}+/8i
! 1243: \x{03a1}\x{03c1}\x{03f1}
1.1 misho 1244:
1.1.1.2 ! misho 1245: /\x{03f1}+/8i
! 1246: \x{03a1}\x{03c1}\x{03f1}
1.1 misho 1247:
1248:
1.1.1.2 ! misho 1249: /\x{03a3}+/8i
! 1250: \x{03A3}\x{03C2}\x{03C3}
1.1 misho 1251:
1.1.1.2 ! misho 1252: /\x{03c2}+/8i
! 1253: \x{03A3}\x{03C2}\x{03C3}
1.1 misho 1254:
1.1.1.2 ! misho 1255: /\x{03c3}+/8i
! 1256: \x{03A3}\x{03C2}\x{03C3}
! 1257:
! 1258:
! 1259: /\x{03a6}+/8i
! 1260: \x{03a6}\x{03c6}\x{03d5}
! 1261:
! 1262: /\x{03c6}+/8i
! 1263: \x{03a6}\x{03c6}\x{03d5}
! 1264:
! 1265: /\x{03d5}+/8i
! 1266: \x{03a6}\x{03c6}\x{03d5}
! 1267:
! 1268:
! 1269: /\x{03c9}+/8i
! 1270: \x{03c9}\x{03a9}\x{2126}
! 1271:
! 1272: /\x{03a9}+/8i
! 1273: \x{03c9}\x{03a9}\x{2126}
! 1274:
! 1275: /\x{2126}+/8i
! 1276: \x{03c9}\x{03a9}\x{2126}
! 1277:
! 1278:
! 1279: /\x{1e60}+/8i
! 1280: \x{1e60}\x{1e61}\x{1e9b}
! 1281:
! 1282: /\x{1e61}+/8i
! 1283: \x{1e60}\x{1e61}\x{1e9b}
! 1284:
! 1285: /\x{1e9b}+/8i
! 1286: \x{1e60}\x{1e61}\x{1e9b}
! 1287:
! 1288:
! 1289: /\x{1e9e}+/8i
! 1290: \x{1e9e}\x{00df}
! 1291:
! 1292: /\x{00df}+/8i
! 1293: \x{1e9e}\x{00df}
! 1294:
1.1 misho 1295:
1.1.1.2 ! misho 1296: /\x{1f88}+/8i
! 1297: \x{1f88}\x{1f80}
1.1 misho 1298:
1.1.1.2 ! misho 1299: /\x{1f80}+/8i
! 1300: \x{1f88}\x{1f80}
1.1 misho 1301:
1.1.1.2 ! misho 1302: /\x{004b}+/8i
! 1303: \x{004b}\x{006b}\x{212a}
1.1 misho 1304:
1.1.1.2 ! misho 1305: /\x{006b}+/8i
! 1306: \x{004b}\x{006b}\x{212a}
1.1 misho 1307:
1.1.1.2 ! misho 1308: /\x{212a}+/8i
! 1309: \x{004b}\x{006b}\x{212a}
1.1 misho 1310:
1311:
1.1.1.2 ! misho 1312: /\x{0053}+/8i
! 1313: \x{0053}\x{0073}\x{017f}
1.1 misho 1314:
1.1.1.2 ! misho 1315: /\x{0073}+/8i
! 1316: \x{0053}\x{0073}\x{017f}
1.1 misho 1317:
1.1.1.2 ! misho 1318: /\x{017f}+/8i
! 1319: \x{0053}\x{0073}\x{017f}
1.1 misho 1320:
1.1.1.2 ! misho 1321: /ist/8i
! 1322: ikt
1.1 misho 1323:
1.1.1.2 ! misho 1324: /is+t/8i
! 1325: iSs\x{17f}t
! 1326: ikt
1.1 misho 1327:
1.1.1.2 ! misho 1328: /is+?t/8i
! 1329: ikt
1.1 misho 1330:
1.1.1.2 ! misho 1331: /is?t/8i
! 1332: ikt
1.1 misho 1333:
1.1.1.2 ! misho 1334: /is{2}t/8i
! 1335: iskt
1.1 misho 1336:
1.1.1.2 ! misho 1337: /-- End of testinput10 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>