File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testoutput13
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:05:52 2012 UTC (12 years, 5 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    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:         Bra
    7:         [\p{L}]
    8:         Ket
    9:         End
   10: ------------------------------------------------------------------
   11: Capturing subpattern count = 0
   12: No options
   13: No first char
   14: No need char
   15: 
   16: /[\p{^L}]/DZ
   17: ------------------------------------------------------------------
   18:         Bra
   19:         [\P{L}]
   20:         Ket
   21:         End
   22: ------------------------------------------------------------------
   23: Capturing subpattern count = 0
   24: No options
   25: No first char
   26: No need char
   27: 
   28: /[\P{L}]/DZ
   29: ------------------------------------------------------------------
   30:         Bra
   31:         [\P{L}]
   32:         Ket
   33:         End
   34: ------------------------------------------------------------------
   35: Capturing subpattern count = 0
   36: No options
   37: No first char
   38: No need char
   39: 
   40: /[\P{^L}]/DZ
   41: ------------------------------------------------------------------
   42:         Bra
   43:         [\p{L}]
   44:         Ket
   45:         End
   46: ------------------------------------------------------------------
   47: Capturing subpattern count = 0
   48: No options
   49: No first char
   50: No need char
   51: 
   52: /[abc\p{L}\x{0660}]/8DZ
   53: ------------------------------------------------------------------
   54:         Bra
   55:         [a-c\p{L}\x{660}]
   56:         Ket
   57:         End
   58: ------------------------------------------------------------------
   59: Capturing subpattern count = 0
   60: Options: utf8
   61: No first char
   62: No need char
   63: 
   64: /[\p{Nd}]/8DZ
   65: ------------------------------------------------------------------
   66:         Bra
   67:         [\p{Nd}]
   68:         Ket
   69:         End
   70: ------------------------------------------------------------------
   71: Capturing subpattern count = 0
   72: Options: utf8
   73: No first char
   74: No need char
   75:     1234
   76:  0: 1
   77: 
   78: /[\p{Nd}+-]+/8DZ
   79: ------------------------------------------------------------------
   80:         Bra
   81:         [+\-\p{Nd}]+
   82:         Ket
   83:         End
   84: ------------------------------------------------------------------
   85: Capturing subpattern count = 0
   86: Options: utf8
   87: No first char
   88: No need char
   89:     1234
   90:  0: 1234
   91:     12-34
   92:  0: 12-34
   93:     12+\x{661}-34  
   94:  0: 12+\x{661}-34
   95:     ** Failers
   96: No match
   97:     abcd  
   98: No match
   99: 
  100: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ
  101: ------------------------------------------------------------------
  102:         Bra
  103:      /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  104:         Ket
  105:         End
  106: ------------------------------------------------------------------
  107: Capturing subpattern count = 0
  108: Options: caseless utf8
  109: First char = 'A' (caseless)
  110: No need char
  111: 
  112: /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ
  113: ------------------------------------------------------------------
  114:         Bra
  115:         A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  116:         Ket
  117:         End
  118: ------------------------------------------------------------------
  119: Capturing subpattern count = 0
  120: Options: utf8
  121: First char = 'A'
  122: Need char = 176
  123: 
  124: /AB\x{1fb0}/8DZ
  125: ------------------------------------------------------------------
  126:         Bra
  127:         AB\x{1fb0}
  128:         Ket
  129:         End
  130: ------------------------------------------------------------------
  131: Capturing subpattern count = 0
  132: Options: utf8
  133: First char = 'A'
  134: Need char = 176
  135: 
  136: /AB\x{1fb0}/8DZi
  137: ------------------------------------------------------------------
  138:         Bra
  139:      /i AB\x{1fb0}
  140:         Ket
  141:         End
  142: ------------------------------------------------------------------
  143: Capturing subpattern count = 0
  144: Options: caseless utf8
  145: First char = 'A' (caseless)
  146: Need char = 'B' (caseless)
  147: 
  148: /[\x{105}-\x{109}]/8iDZ
  149: ------------------------------------------------------------------
  150:         Bra
  151:         [\x{104}-\x{109}]
  152:         Ket
  153:         End
  154: ------------------------------------------------------------------
  155: Capturing subpattern count = 0
  156: Options: caseless utf8
  157: No first char
  158: No need char
  159:     \x{104}
  160:  0: \x{104}
  161:     \x{105}
  162:  0: \x{105}
  163:     \x{109}  
  164:  0: \x{109}
  165:     ** Failers
  166: No match
  167:     \x{100}
  168: No match
  169:     \x{10a} 
  170: No match
  171:     
  172: /[z-\x{100}]/8iDZ 
  173: ------------------------------------------------------------------
  174:         Bra
  175:         [Z\x{39c}\x{178}z-\x{101}]
  176:         Ket
  177:         End
  178: ------------------------------------------------------------------
  179: Capturing subpattern count = 0
  180: Options: caseless utf8
  181: No first char
  182: No need char
  183:     Z
  184:  0: Z
  185:     z
  186:  0: z
  187:     \x{39c}
  188:  0: \x{39c}
  189:     \x{178}
  190:  0: \x{178}
  191:     |
  192:  0: |
  193:     \x{80}
  194:  0: \x{80}
  195:     \x{ff}
  196:  0: \x{ff}
  197:     \x{100}
  198:  0: \x{100}
  199:     \x{101} 
  200:  0: \x{101}
  201:     ** Failers
  202: No match
  203:     \x{102}
  204: No match
  205:     Y
  206: No match
  207:     y           
  208: No match
  209: 
  210: /[z-\x{100}]/8DZi
  211: ------------------------------------------------------------------
  212:         Bra
  213:         [Z\x{39c}\x{178}z-\x{101}]
  214:         Ket
  215:         End
  216: ------------------------------------------------------------------
  217: Capturing subpattern count = 0
  218: Options: caseless utf8
  219: No first char
  220: No need char
  221: 
  222: /(?:[\PPa*]*){8,}/
  223: 
  224: /[\P{Any}]/BZ
  225: ------------------------------------------------------------------
  226:         Bra
  227:         [\P{Any}]
  228:         Ket
  229:         End
  230: ------------------------------------------------------------------
  231: 
  232: /[\P{Any}\E]/BZ
  233: ------------------------------------------------------------------
  234:         Bra
  235:         [\P{Any}]
  236:         Ket
  237:         End
  238: ------------------------------------------------------------------
  239: 
  240: /(\P{Yi}+\277)/
  241: 
  242: /(\P{Yi}+\277)?/
  243: 
  244: /(?<=\P{Yi}{3}A)X/
  245: 
  246: /\p{Yi}+(\P{Yi}+)(?1)/
  247: 
  248: /(\P{Yi}{2}\277)?/
  249: 
  250: /[\P{Yi}A]/
  251: 
  252: /[\P{Yi}\P{Yi}\P{Yi}A]/
  253: 
  254: /[^\P{Yi}A]/
  255: 
  256: /[^\P{Yi}\P{Yi}\P{Yi}A]/
  257: 
  258: /(\P{Yi}*\277)*/
  259: 
  260: /(\P{Yi}*?\277)*/
  261: 
  262: /(\p{Yi}*+\277)*/
  263: 
  264: /(\P{Yi}?\277)*/
  265: 
  266: /(\P{Yi}??\277)*/
  267: 
  268: /(\p{Yi}?+\277)*/
  269: 
  270: /(\P{Yi}{0,3}\277)*/
  271: 
  272: /(\P{Yi}{0,3}?\277)*/
  273: 
  274: /(\p{Yi}{0,3}+\277)*/
  275: 
  276: /\p{Zl}{2,3}+/8BZ
  277: ------------------------------------------------------------------
  278:         Bra
  279:         prop Zl {2}
  280:         prop Zl ?+
  281:         Ket
  282:         End
  283: ------------------------------------------------------------------
  284:     \xe2\x80\xa8\xe2\x80\xa8
  285:  0: \x{2028}\x{2028}
  286:     \x{2028}\x{2028}\x{2028}
  287:  0: \x{2028}\x{2028}\x{2028}
  288:     
  289: /\p{Zl}/8BZ
  290: ------------------------------------------------------------------
  291:         Bra
  292:         prop Zl
  293:         Ket
  294:         End
  295: ------------------------------------------------------------------
  296: 
  297: /\p{Lu}{3}+/8BZ
  298: ------------------------------------------------------------------
  299:         Bra
  300:         prop Lu {3}
  301:         Ket
  302:         End
  303: ------------------------------------------------------------------
  304: 
  305: /\pL{2}+/8BZ
  306: ------------------------------------------------------------------
  307:         Bra
  308:         prop L {2}
  309:         Ket
  310:         End
  311: ------------------------------------------------------------------
  312: 
  313: /\p{Cc}{2}+/8BZ
  314: ------------------------------------------------------------------
  315:         Bra
  316:         prop Cc {2}
  317:         Ket
  318:         End
  319: ------------------------------------------------------------------
  320: 
  321: /^\p{Cs}/8
  322:     \?\x{dfff}
  323:  0: \x{dfff}
  324:     ** Failers
  325: No match
  326:     \x{09f} 
  327: No match
  328:   
  329: /^\p{Sc}+/8
  330:     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
  331:  0: $\x{a2}\x{a3}\x{a4}\x{a5}
  332:     \x{9f2}
  333:  0: \x{9f2}
  334:     ** Failers
  335: No match
  336:     X
  337: No match
  338:     \x{2c2}
  339: No match
  340:   
  341: /^\p{Zs}/8
  342:     \ \
  343:  0:  
  344:     \x{a0}
  345:  0: \x{a0}
  346:     \x{1680}
  347:  0: \x{1680}
  348:     \x{180e}
  349:  0: \x{180e}
  350:     \x{2000}
  351:  0: \x{2000}
  352:     \x{2001}     
  353:  0: \x{2001}
  354:     ** Failers
  355: No match
  356:     \x{2028}
  357: No match
  358:     \x{200d} 
  359: No match
  360:   
  361: /-- These four are here rather than in test 6 because Perl has problems with
  362:     the negative versions of the properties. --/
  363:       
  364: /\p{^Lu}/8i
  365:     1234
  366:  0: 1
  367:     ** Failers
  368:  0: *
  369:     ABC 
  370: No match
  371: 
  372: /\P{Lu}/8i
  373:     1234
  374:  0: 1
  375:     ** Failers
  376:  0: *
  377:     ABC 
  378: No match
  379: 
  380: /\p{Ll}/8i 
  381:     a
  382:  0: a
  383:     Az
  384:  0: z
  385:     ** Failers
  386:  0: a
  387:     ABC   
  388: No match
  389: 
  390: /\p{Lu}/8i
  391:     A
  392:  0: A
  393:     a\x{10a0}B 
  394:  0: \x{10a0}
  395:     ** Failers 
  396:  0: F
  397:     a
  398: No match
  399:     \x{1d00}  
  400: No match
  401: 
  402: /[\x{c0}\x{391}]/8i
  403:     \x{c0}
  404:  0: \x{c0}
  405:     \x{e0} 
  406:  0: \x{e0}
  407: 
  408: /-- The next two are special cases where the lengths of the different cases of
  409: the same character differ. The first went wrong with heap frame storage; the
  410: second was broken in all cases. --/
  411: 
  412: /^\x{023a}+?(\x{0130}+)/8i
  413:   \x{023a}\x{2c65}\x{0130}
  414:  0: \x{23a}\x{2c65}\x{130}
  415:  1: \x{130}
  416:   
  417: /^\x{023a}+([^X])/8i
  418:   \x{023a}\x{2c65}X
  419:  0: \x{23a}\x{2c65}
  420:  1: \x{2c65}
  421: 
  422: /\x{c0}+\x{116}+/8i
  423:     \x{c0}\x{e0}\x{116}\x{117}
  424:  0: \x{c0}\x{e0}\x{116}\x{117}
  425: 
  426: /[\x{c0}\x{116}]+/8i
  427:     \x{c0}\x{e0}\x{116}\x{117}
  428:  0: \x{c0}\x{e0}\x{116}\x{117}
  429: 
  430: /(\x{de})\1/8i
  431:     \x{de}\x{de}
  432:  0: \x{de}\x{de}
  433:  1: \x{de}
  434:     \x{de}\x{fe}
  435:  0: \x{de}\x{fe}
  436:  1: \x{de}
  437:     \x{fe}\x{fe}
  438:  0: \x{fe}\x{fe}
  439:  1: \x{fe}
  440:     \x{fe}\x{de}
  441:  0: \x{fe}\x{de}
  442:  1: \x{fe}
  443: 
  444: /^\x{c0}$/8i
  445:     \x{c0}
  446:  0: \x{c0}
  447:     \x{e0} 
  448:  0: \x{e0}
  449: 
  450: /^\x{e0}$/8i
  451:     \x{c0}
  452:  0: \x{c0}
  453:     \x{e0} 
  454:  0: \x{e0}
  455: 
  456: /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
  457: will match it only with UCP support, because without that it has no notion
  458: of case for anything other than the ASCII letters. --/ 
  459: 
  460: /((?i)[\x{c0}])/8
  461:     \x{c0}
  462:  0: \x{c0}
  463:  1: \x{c0}
  464:     \x{e0} 
  465:  0: \x{e0}
  466:  1: \x{e0}
  467: 
  468: /(?i:[\x{c0}])/8
  469:     \x{c0}
  470:  0: \x{c0}
  471:     \x{e0} 
  472:  0: \x{e0}
  473: 
  474: /-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
  475:     
  476: /^\X/8
  477:     A
  478:  0: A
  479:     A\x{300}BC 
  480:  0: A\x{300}
  481:     A\x{300}\x{301}\x{302}BC 
  482:  0: A\x{300}\x{301}\x{302}
  483:     *** Failers
  484:  0: *
  485:     \x{300}  
  486: No match
  487:     
  488: /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
  489: 
  490: /^\p{Xan}/8
  491:     ABCD
  492:  0: A
  493:     1234
  494:  0: 1
  495:     \x{6ca}
  496:  0: \x{6ca}
  497:     \x{a6c}
  498:  0: \x{a6c}
  499:     \x{10a7}   
  500:  0: \x{10a7}
  501:     ** Failers
  502: No match
  503:     _ABC   
  504: No match
  505: 
  506: /^\p{Xan}+/8
  507:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  508:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  509:     ** Failers
  510: No match
  511:     _ABC   
  512: No match
  513: 
  514: /^\p{Xan}+?/8
  515:     \x{6ca}\x{a6c}\x{10a7}_
  516:  0: \x{6ca}
  517: 
  518: /^\p{Xan}*/8
  519:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  520:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  521:     
  522: /^\p{Xan}{2,9}/8
  523:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  524:  0: ABCD1234\x{6ca}
  525:     
  526: /^\p{Xan}{2,9}?/8
  527:     \x{6ca}\x{a6c}\x{10a7}_
  528:  0: \x{6ca}\x{a6c}
  529:     
  530: /^[\p{Xan}]/8
  531:     ABCD1234_
  532:  0: A
  533:     1234abcd_
  534:  0: 1
  535:     \x{6ca}
  536:  0: \x{6ca}
  537:     \x{a6c}
  538:  0: \x{a6c}
  539:     \x{10a7}   
  540:  0: \x{10a7}
  541:     ** Failers
  542: No match
  543:     _ABC   
  544: No match
  545:  
  546: /^[\p{Xan}]+/8
  547:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  548:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  549:     ** Failers
  550: No match
  551:     _ABC   
  552: No match
  553: 
  554: /^>\p{Xsp}/8
  555:     >\x{1680}\x{2028}\x{0b}
  556:  0: >\x{1680}
  557:     >\x{a0} 
  558:  0: >\x{a0}
  559:     ** Failers
  560: No match
  561:     \x{0b} 
  562: No match
  563: 
  564: /^>\p{Xsp}+/8
  565:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  566:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  567: 
  568: /^>\p{Xsp}+?/8
  569:     >\x{1680}\x{2028}\x{0b}
  570:  0: >\x{1680}
  571: 
  572: /^>\p{Xsp}*/8
  573:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  574:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  575:     
  576: /^>\p{Xsp}{2,9}/8
  577:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  578:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  579:     
  580: /^>\p{Xsp}{2,9}?/8
  581:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  582:  0: > \x{09}
  583:     
  584: /^>[\p{Xsp}]/8
  585:     >\x{2028}\x{0b}
  586:  0: >\x{2028}
  587:  
  588: /^>[\p{Xsp}]+/8
  589:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  590:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  591: 
  592: /^>\p{Xps}/8
  593:     >\x{1680}\x{2028}\x{0b}
  594:  0: >\x{1680}
  595:     >\x{a0} 
  596:  0: >\x{a0}
  597:     ** Failers
  598: No match
  599:     \x{0b} 
  600: No match
  601: 
  602: /^>\p{Xps}+/8
  603:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  604:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  605: 
  606: /^>\p{Xps}+?/8
  607:     >\x{1680}\x{2028}\x{0b}
  608:  0: >\x{1680}
  609: 
  610: /^>\p{Xps}*/8
  611:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  612:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  613:     
  614: /^>\p{Xps}{2,9}/8
  615:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  616:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  617:     
  618: /^>\p{Xps}{2,9}?/8
  619:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  620:  0: > \x{09}
  621:     
  622: /^>[\p{Xps}]/8
  623:     >\x{2028}\x{0b}
  624:  0: >\x{2028}
  625:  
  626: /^>[\p{Xps}]+/8
  627:     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  628:  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  629: 
  630: /^\p{Xwd}/8
  631:     ABCD
  632:  0: A
  633:     1234
  634:  0: 1
  635:     \x{6ca}
  636:  0: \x{6ca}
  637:     \x{a6c}
  638:  0: \x{a6c}
  639:     \x{10a7}
  640:  0: \x{10a7}
  641:     _ABC    
  642:  0: _
  643:     ** Failers
  644: No match
  645:     [] 
  646: No match
  647: 
  648: /^\p{Xwd}+/8
  649:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  650:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  651: 
  652: /^\p{Xwd}+?/8
  653:     \x{6ca}\x{a6c}\x{10a7}_
  654:  0: \x{6ca}
  655: 
  656: /^\p{Xwd}*/8
  657:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  658:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  659:     
  660: /^\p{Xwd}{2,9}/8
  661:     A_B12\x{6ca}\x{a6c}\x{10a7}
  662:  0: A_B12\x{6ca}\x{a6c}\x{10a7}
  663:     
  664: /^\p{Xwd}{2,9}?/8
  665:     \x{6ca}\x{a6c}\x{10a7}_
  666:  0: \x{6ca}\x{a6c}
  667:     
  668: /^[\p{Xwd}]/8
  669:     ABCD1234_
  670:  0: A
  671:     1234abcd_
  672:  0: 1
  673:     \x{6ca}
  674:  0: \x{6ca}
  675:     \x{a6c}
  676:  0: \x{a6c}
  677:     \x{10a7}   
  678:  0: \x{10a7}
  679:     _ABC 
  680:  0: _
  681:     ** Failers
  682: No match
  683:     []   
  684: No match
  685:  
  686: /^[\p{Xwd}]+/8
  687:     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  688:  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  689: 
  690: /-- A check not in UTF-8 mode --/
  691: 
  692: /^[\p{Xwd}]+/
  693:     ABCD1234_
  694:  0: ABCD1234_
  695:     
  696: /-- Some negative checks --/
  697: 
  698: /^[\P{Xwd}]+/8
  699:     !.+\x{019}\x{35a}AB
  700:  0: !.+\x{19}\x{35a}
  701: 
  702: /^[\p{^Xwd}]+/8
  703:     !.+\x{019}\x{35a}AB
  704:  0: !.+\x{19}\x{35a}
  705: 
  706: /[\D]/WBZ8
  707: ------------------------------------------------------------------
  708:         Bra
  709:         [\P{Nd}]
  710:         Ket
  711:         End
  712: ------------------------------------------------------------------
  713:     1\x{3c8}2
  714:  0: \x{3c8}
  715: 
  716: /[\d]/WBZ8
  717: ------------------------------------------------------------------
  718:         Bra
  719:         [\p{Nd}]
  720:         Ket
  721:         End
  722: ------------------------------------------------------------------
  723:     >\x{6f4}<
  724:  0: \x{6f4}
  725: 
  726: /[\S]/WBZ8
  727: ------------------------------------------------------------------
  728:         Bra
  729:         [\P{Xsp}]
  730:         Ket
  731:         End
  732: ------------------------------------------------------------------
  733:     \x{1680}\x{6f4}\x{1680}
  734:  0: \x{6f4}
  735: 
  736: /[\s]/WBZ8
  737: ------------------------------------------------------------------
  738:         Bra
  739:         [\p{Xsp}]
  740:         Ket
  741:         End
  742: ------------------------------------------------------------------
  743:     >\x{1680}<
  744:  0: \x{1680}
  745: 
  746: /[\W]/WBZ8
  747: ------------------------------------------------------------------
  748:         Bra
  749:         [\P{Xwd}]
  750:         Ket
  751:         End
  752: ------------------------------------------------------------------
  753:     A\x{1712}B
  754:  0: \x{1712}
  755: 
  756: /[\w]/WBZ8
  757: ------------------------------------------------------------------
  758:         Bra
  759:         [\p{Xwd}]
  760:         Ket
  761:         End
  762: ------------------------------------------------------------------
  763:     >\x{1723}<
  764:  0: \x{1723}
  765: 
  766: /\D/WBZ8
  767: ------------------------------------------------------------------
  768:         Bra
  769:         notprop Nd
  770:         Ket
  771:         End
  772: ------------------------------------------------------------------
  773:     1\x{3c8}2
  774:  0: \x{3c8}
  775: 
  776: /\d/WBZ8
  777: ------------------------------------------------------------------
  778:         Bra
  779:         prop Nd
  780:         Ket
  781:         End
  782: ------------------------------------------------------------------
  783:     >\x{6f4}<
  784:  0: \x{6f4}
  785: 
  786: /\S/WBZ8
  787: ------------------------------------------------------------------
  788:         Bra
  789:         notprop Xsp
  790:         Ket
  791:         End
  792: ------------------------------------------------------------------
  793:     \x{1680}\x{6f4}\x{1680}
  794:  0: \x{6f4}
  795: 
  796: /\s/WBZ8
  797: ------------------------------------------------------------------
  798:         Bra
  799:         prop Xsp
  800:         Ket
  801:         End
  802: ------------------------------------------------------------------
  803:     >\x{1680}>
  804:  0: \x{1680}
  805: 
  806: /\W/WBZ8
  807: ------------------------------------------------------------------
  808:         Bra
  809:         notprop Xwd
  810:         Ket
  811:         End
  812: ------------------------------------------------------------------
  813:     A\x{1712}B
  814:  0: \x{1712}
  815: 
  816: /\w/WBZ8
  817: ------------------------------------------------------------------
  818:         Bra
  819:         prop Xwd
  820:         Ket
  821:         End
  822: ------------------------------------------------------------------
  823:     >\x{1723}<
  824:  0: \x{1723}
  825: 
  826: /[[:alpha:]]/WBZ
  827: ------------------------------------------------------------------
  828:         Bra
  829:         [\p{L}]
  830:         Ket
  831:         End
  832: ------------------------------------------------------------------
  833: 
  834: /[[:lower:]]/WBZ
  835: ------------------------------------------------------------------
  836:         Bra
  837:         [\p{Ll}]
  838:         Ket
  839:         End
  840: ------------------------------------------------------------------
  841: 
  842: /[[:upper:]]/WBZ
  843: ------------------------------------------------------------------
  844:         Bra
  845:         [\p{Lu}]
  846:         Ket
  847:         End
  848: ------------------------------------------------------------------
  849: 
  850: /[[:alnum:]]/WBZ
  851: ------------------------------------------------------------------
  852:         Bra
  853:         [\p{Xan}]
  854:         Ket
  855:         End
  856: ------------------------------------------------------------------
  857: 
  858: /[[:ascii:]]/WBZ
  859: ------------------------------------------------------------------
  860:         Bra
  861:         [\x00-\x7f]
  862:         Ket
  863:         End
  864: ------------------------------------------------------------------
  865: 
  866: /[[:blank:]]/WBZ
  867: ------------------------------------------------------------------
  868:         Bra
  869:         [\x09 \xa0]
  870:         Ket
  871:         End
  872: ------------------------------------------------------------------
  873: 
  874: /[[:cntrl:]]/WBZ
  875: ------------------------------------------------------------------
  876:         Bra
  877:         [\x00-\x1f\x7f]
  878:         Ket
  879:         End
  880: ------------------------------------------------------------------
  881: 
  882: /[[:digit:]]/WBZ
  883: ------------------------------------------------------------------
  884:         Bra
  885:         [\p{Nd}]
  886:         Ket
  887:         End
  888: ------------------------------------------------------------------
  889: 
  890: /[[:graph:]]/WBZ
  891: ------------------------------------------------------------------
  892:         Bra
  893:         [!-~]
  894:         Ket
  895:         End
  896: ------------------------------------------------------------------
  897: 
  898: /[[:print:]]/WBZ
  899: ------------------------------------------------------------------
  900:         Bra
  901:         [ -~]
  902:         Ket
  903:         End
  904: ------------------------------------------------------------------
  905: 
  906: /[[:punct:]]/WBZ
  907: ------------------------------------------------------------------
  908:         Bra
  909:         [!-/:-@[-`{-~]
  910:         Ket
  911:         End
  912: ------------------------------------------------------------------
  913: 
  914: /[[:space:]]/WBZ
  915: ------------------------------------------------------------------
  916:         Bra
  917:         [\p{Xps}]
  918:         Ket
  919:         End
  920: ------------------------------------------------------------------
  921: 
  922: /[[:word:]]/WBZ
  923: ------------------------------------------------------------------
  924:         Bra
  925:         [\p{Xwd}]
  926:         Ket
  927:         End
  928: ------------------------------------------------------------------
  929: 
  930: /[[:xdigit:]]/WBZ
  931: ------------------------------------------------------------------
  932:         Bra
  933:         [0-9A-Fa-f]
  934:         Ket
  935:         End
  936: ------------------------------------------------------------------
  937: 
  938: /-- Unicode properties for \b abd \B --/
  939: 
  940: /\b...\B/8W
  941:     abc_
  942:  0: abc
  943:     \x{37e}abc\x{376} 
  944:  0: abc
  945:     \x{37e}\x{376}\x{371}\x{393}\x{394} 
  946:  0: \x{376}\x{371}\x{393}
  947:     !\x{c0}++\x{c1}\x{c2} 
  948:  0: ++\x{c1}
  949:     !\x{c0}+++++ 
  950:  0: \x{c0}++
  951: 
  952: /-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
  953: 
  954: /\b...\B/8
  955:     abc_
  956:  0: abc
  957:     ** Failers 
  958:  0: Fai
  959:     \x{37e}abc\x{376} 
  960: No match
  961:     \x{37e}\x{376}\x{371}\x{393}\x{394} 
  962: No match
  963:     !\x{c0}++\x{c1}\x{c2} 
  964: No match
  965:     !\x{c0}+++++ 
  966: No match
  967: 
  968: /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
  969: 
  970: /\b...\B/W
  971:     abc_
  972:  0: abc
  973:     !\x{c0}++\x{c1}\x{c2} 
  974:  0: ++\xc1
  975:     !\x{c0}+++++ 
  976:  0: \xc0++
  977: 
  978: /-- POSIX interface --/
  979: 
  980: /\w/P
  981:     +++\x{c2}
  982: No match: POSIX code 17: match failed
  983: 
  984: /\w/WP
  985:     +++\x{c2}
  986:  0: \xc2
  987:     
  988: /-- Some of these are silly, but they check various combinations --/
  989: 
  990: /[[:^alpha:][:^cntrl:]]+/8WBZ
  991: ------------------------------------------------------------------
  992:         Bra
  993:         [ -~\x80-\xff\P{L}]+
  994:         Ket
  995:         End
  996: ------------------------------------------------------------------
  997:     123
  998:  0: 123
  999:     abc 
 1000:  0: abc
 1001: 
 1002: /[[:^cntrl:][:^alpha:]]+/8WBZ
 1003: ------------------------------------------------------------------
 1004:         Bra
 1005:         [ -~\x80-\xff\P{L}]+
 1006:         Ket
 1007:         End
 1008: ------------------------------------------------------------------
 1009:     123
 1010:  0: 123
 1011:     abc 
 1012:  0: abc
 1013: 
 1014: /[[:alpha:]]+/8WBZ
 1015: ------------------------------------------------------------------
 1016:         Bra
 1017:         [\p{L}]+
 1018:         Ket
 1019:         End
 1020: ------------------------------------------------------------------
 1021:     abc
 1022:  0: abc
 1023: 
 1024: /[[:^alpha:]\S]+/8WBZ
 1025: ------------------------------------------------------------------
 1026:         Bra
 1027:         [\P{L}\P{Xsp}]+
 1028:         Ket
 1029:         End
 1030: ------------------------------------------------------------------
 1031:     123
 1032:  0: 123
 1033:     abc 
 1034:  0: abc
 1035: 
 1036: /[^\d]+/8WBZ
 1037: ------------------------------------------------------------------
 1038:         Bra
 1039:         [^\p{Nd}]+
 1040:         Ket
 1041:         End
 1042: ------------------------------------------------------------------
 1043:     abc123
 1044:  0: abc
 1045:     abc\x{123}
 1046:  0: abc\x{123}
 1047:     \x{660}abc   
 1048:  0: abc
 1049: 
 1050: /\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
 1051: Capturing subpattern count = 0
 1052: Options: caseless utf8
 1053: No first char
 1054: No need char
 1055: Subject length lower bound = 17
 1056: Starting byte set: \xd0 \xd1 
 1057:     \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}
 1058:  0: \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}
 1059:     \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}
 1060:  0: \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}
 1061: 
 1062: /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
 1063: ------------------------------------------------------------------
 1064:         Bra
 1065:         prop Lu ++
 1066:         9
 1067:         prop Lu +
 1068:         B
 1069:         prop Lu ++
 1070:         b
 1071:         Ket
 1072:         End
 1073: ------------------------------------------------------------------
 1074: 
 1075: /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
 1076: ------------------------------------------------------------------
 1077:         Bra
 1078:         notprop Lu +
 1079:         9
 1080:         notprop Lu ++
 1081:         B
 1082:         notprop Lu +
 1083:         b
 1084:         Ket
 1085:         End
 1086: ------------------------------------------------------------------
 1087: 
 1088: /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
 1089: ------------------------------------------------------------------
 1090:         Bra
 1091:         notprop Lu +
 1092:         9
 1093:         notprop Lu ++
 1094:         B
 1095:         notprop Lu +
 1096:         b
 1097:         Ket
 1098:         End
 1099: ------------------------------------------------------------------
 1100: 
 1101: /\p{Han}+X\p{Greek}+\x{370}/BZ8
 1102: ------------------------------------------------------------------
 1103:         Bra
 1104:         prop Han ++
 1105:         X
 1106:         prop Greek +
 1107:         \x{370}
 1108:         Ket
 1109:         End
 1110: ------------------------------------------------------------------
 1111: 
 1112: /\p{Xan}+!\p{Xan}+A/BZ
 1113: ------------------------------------------------------------------
 1114:         Bra
 1115:         prop Xan ++
 1116:         !
 1117:         prop Xan +
 1118:         A
 1119:         Ket
 1120:         End
 1121: ------------------------------------------------------------------
 1122: 
 1123: /\p{Xsp}+!\p{Xsp}\t/BZ
 1124: ------------------------------------------------------------------
 1125:         Bra
 1126:         prop Xsp ++
 1127:         !
 1128:         prop Xsp
 1129:         \x09
 1130:         Ket
 1131:         End
 1132: ------------------------------------------------------------------
 1133: 
 1134: /\p{Xps}+!\p{Xps}\t/BZ
 1135: ------------------------------------------------------------------
 1136:         Bra
 1137:         prop Xps ++
 1138:         !
 1139:         prop Xps
 1140:         \x09
 1141:         Ket
 1142:         End
 1143: ------------------------------------------------------------------
 1144: 
 1145: /\p{Xwd}+!\p{Xwd}_/BZ
 1146: ------------------------------------------------------------------
 1147:         Bra
 1148:         prop Xwd ++
 1149:         !
 1150:         prop Xwd
 1151:         _
 1152:         Ket
 1153:         End
 1154: ------------------------------------------------------------------
 1155: 
 1156: /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
 1157: ------------------------------------------------------------------
 1158:         Bra
 1159:         A++
 1160:         prop N
 1161:         A++
 1162:         prop Nd
 1163:         B+
 1164:         prop N *+
 1165:         B+
 1166:         prop Nd *
 1167:         Ket
 1168:         End
 1169: ------------------------------------------------------------------
 1170: 
 1171: /-- These behaved oddly in Perl, so they are kept in this test --/
 1172: 
 1173: /(\x{23a}\x{23a}\x{23a})?\1/8i
 1174:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
 1175: No match
 1176: 
 1177: /(ȺȺȺ)?\1/8i
 1178:     ȺȺȺⱥⱥ
 1179: No match
 1180: 
 1181: /(\x{23a}\x{23a}\x{23a})?\1/8i
 1182:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1183:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1184:  1: \x{23a}\x{23a}\x{23a}
 1185: 
 1186: /(ȺȺȺ)?\1/8i
 1187:     ȺȺȺⱥⱥⱥ
 1188:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1189:  1: \x{23a}\x{23a}\x{23a}
 1190: 
 1191: /(\x{23a}\x{23a}\x{23a})\1/8i
 1192:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
 1193: No match
 1194: 
 1195: /(ȺȺȺ)\1/8i
 1196:     ȺȺȺⱥⱥ
 1197: No match
 1198: 
 1199: /(\x{23a}\x{23a}\x{23a})\1/8i
 1200:     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1201:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1202:  1: \x{23a}\x{23a}\x{23a}
 1203: 
 1204: /(ȺȺȺ)\1/8i
 1205:     ȺȺȺⱥⱥⱥ
 1206:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 1207:  1: \x{23a}\x{23a}\x{23a}
 1208: 
 1209: /(\x{2c65}\x{2c65})\1/8i
 1210:     \x{2c65}\x{2c65}\x{23a}\x{23a}
 1211:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
 1212:  1: \x{2c65}\x{2c65}
 1213:     
 1214: /(ⱥⱥ)\1/8i
 1215:     ⱥⱥȺȺ 
 1216:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
 1217:  1: \x{2c65}\x{2c65}
 1218:     
 1219: /(\x{23a}\x{23a}\x{23a})\1Y/8i
 1220:     X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
 1221:  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
 1222:  1: \x{23a}\x{23a}\x{23a}
 1223: 
 1224: /(\x{2c65}\x{2c65})\1Y/8i
 1225:     X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
 1226:  0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
 1227:  1: \x{2c65}\x{2c65}
 1228: 
 1229: /-- --/ 
 1230: 
 1231: /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
 1232: 
 1233: /^[\p{Batak}]/8
 1234:     \x{1bc0}
 1235:  0: \x{1bc0}
 1236:     \x{1bff}
 1237:  0: \x{1bff}
 1238:     ** Failers
 1239: No match
 1240:     \x{1bf4}
 1241: No match
 1242:     
 1243: /^[\p{Brahmi}]/8
 1244:     \x{11000}
 1245:  0: \x{11000}
 1246:     \x{1106f}
 1247:  0: \x{1106f}
 1248:     ** Failers
 1249: No match
 1250:     \x{1104e}
 1251: No match
 1252:     
 1253: /^[\p{Mandaic}]/8
 1254:     \x{840}
 1255:  0: \x{840}
 1256:     \x{85e}
 1257:  0: \x{85e}
 1258:     ** Failers
 1259: No match
 1260:     \x{85c}
 1261: No match
 1262:     \x{85d}    
 1263: No match
 1264: 
 1265: /-- --/ 
 1266: 
 1267: /(\X*)(.)/s8
 1268:     A\x{300}
 1269:  0: A
 1270:  1: 
 1271:  2: A
 1272: 
 1273: /^S(\X*)e(\X*)$/8
 1274:     Stéréo
 1275: No match
 1276:     
 1277: /^\X/8 
 1278:     ́réo
 1279: No match
 1280: 
 1281: /^a\X41z/<JS>
 1282:     aX41z
 1283:  0: aX41z
 1284:     *** Failers
 1285: No match
 1286:     aAz
 1287: No match
 1288: 
 1289: /(?<=ab\Cde)X/8
 1290: Failed: \C not allowed in lookbehind assertion at offset 10
 1291: 
 1292: /-- End of testinput13 --/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>