File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testinput14
Revision 1.1.1.5 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:46:05 2014 UTC (10 years ago) by misho
Branches: pcre, MAIN
CVS tags: v8_34, HEAD
pcre 8.34

    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 --/

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