/[pcre]/code/trunk/testdata/testinput1
ViewVC logotype

Diff of /code/trunk/testdata/testinput1

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 55 by nigel, Sat Feb 24 21:39:46 2007 UTC revision 63 by nigel, Sat Feb 24 21:40:03 2007 UTC
# Line 1357  Line 1357 
1357    
1358  /^[W-c]+$/  /^[W-c]+$/
1359      WXY_^abc      WXY_^abc
1360      ***Failers      *** Failers
1361      wxy      wxy
1362    
1363  /^[W-c]+$/i  /^[W-c]+$/i
# Line 1517  Line 1517 
1517  /(abc)[\1]de/  /(abc)[\1]de/
1518      abc\1de      abc\1de
1519    
1520  /a.b(?s)/  /(?s)a.b/
1521      a\nb      a\nb
1522    
1523  /^([^a])([^\b])([^c]*)([^d]{3,4})/  /^([^a])([^\b])([^c]*)([^d]{3,4})/
# Line 1947  Line 1947 
1947  /(AB)*\1/  /(AB)*\1/
1948      ABABAB      ABABAB
1949    
1950    /(?<!bar)foo/
1951        foo
1952        catfood
1953        arfootle
1954        rfoosh
1955        *** Failers
1956        barfoo
1957        towbarfoo
1958    
1959    /\w{3}(?<!bar)foo/
1960        catfood
1961        *** Failers
1962        foo
1963        barfoo
1964        towbarfoo
1965    
1966    /(?<=(foo)a)bar/
1967        fooabar
1968        *** Failers
1969        bar
1970        foobbar
1971    
1972    /\Aabc\z/m
1973        abc
1974        *** Failers
1975        abc\n
1976        qqq\nabc
1977        abc\nzzz
1978        qqq\nabc\nzzz
1979    
1980    "(?>.*/)foo"
1981        /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
1982    
1983    "(?>.*/)foo"
1984        /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
1985    
1986    /(?>(\.\d\d[1-9]?))\d+/
1987        1.230003938
1988        1.875000282
1989        *** Failers
1990        1.235
1991    
1992    /^((?>\w+)|(?>\s+))*$/
1993        now is the time for all good men to come to the aid of the party
1994        *** Failers
1995        this is not a line with only words and spaces!
1996    
1997    /(\d+)(\w)/
1998        12345a
1999        12345+
2000    
2001    /((?>\d+))(\w)/
2002        12345a
2003        *** Failers
2004        12345+
2005    
2006    /(?>a+)b/
2007        aaab
2008    
2009    /((?>a+)b)/
2010        aaab
2011    
2012    /(?>(a+))b/
2013        aaab
2014    
2015    /(?>b)+/
2016        aaabbbccc
2017    
2018    /(?>a+|b+|c+)*c/
2019        aaabbbbccccd
2020    
2021    /((?>[^()]+)|\([^()]*\))+/
2022        ((abc(ade)ufh()()x
2023    
2024    /\(((?>[^()]+)|\([^()]+\))+\)/
2025        (abc)
2026        (abc(def)xyz)
2027        *** Failers
2028        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2029    
2030    /a(?-i)b/i
2031        ab
2032        Ab
2033        *** Failers
2034        aB
2035        AB
2036    
2037    /(a (?x)b c)d e/
2038        a bcd e
2039        *** Failers
2040        a b cd e
2041        abcd e
2042        a bcde
2043    
2044    /(a b(?x)c d (?-x)e f)/
2045        a bcde f
2046        *** Failers
2047        abcdef
2048    
2049    /(a(?i)b)c/
2050        abc
2051        aBc
2052        *** Failers
2053        abC
2054        aBC
2055        Abc
2056        ABc
2057        ABC
2058        AbC
2059    
2060    /a(?i:b)c/
2061        abc
2062        aBc
2063        *** Failers
2064        ABC
2065        abC
2066        aBC
2067    
2068    /a(?i:b)*c/
2069        aBc
2070        aBBc
2071        *** Failers
2072        aBC
2073        aBBC
2074    
2075    /a(?=b(?i)c)\w\wd/
2076        abcd
2077        abCd
2078        *** Failers
2079        aBCd
2080        abcD
2081    
2082    /(?s-i:more.*than).*million/i
2083        more than million
2084        more than MILLION
2085        more \n than Million
2086        *** Failers
2087        MORE THAN MILLION
2088        more \n than \n million
2089    
2090    /(?:(?s-i)more.*than).*million/i
2091        more than million
2092        more than MILLION
2093        more \n than Million
2094        *** Failers
2095        MORE THAN MILLION
2096        more \n than \n million
2097    
2098    /(?>a(?i)b+)+c/
2099        abc
2100        aBbc
2101        aBBc
2102        *** Failers
2103        Abc
2104        abAb
2105        abbC
2106    
2107    /(?=a(?i)b)\w\wc/
2108        abc
2109        aBc
2110        *** Failers
2111        Ab
2112        abC
2113        aBC
2114    
2115    /(?<=a(?i)b)(\w\w)c/
2116        abxxc
2117        aBxxc
2118        *** Failers
2119        Abxxc
2120        ABxxc
2121        abxxC
2122    
2123    /(?:(a)|b)(?(1)A|B)/
2124        aA
2125        bB
2126        *** Failers
2127        aB
2128        bA
2129    
2130    /^(a)?(?(1)a|b)+$/
2131        aa
2132        b
2133        bb
2134        *** Failers
2135        ab
2136    
2137    /^(?(?=abc)\w{3}:|\d\d)$/
2138        abc:
2139        12
2140        *** Failers
2141        123
2142        xyz
2143    
2144    /^(?(?!abc)\d\d|\w{3}:)$/
2145        abc:
2146        12
2147        *** Failers
2148        123
2149        xyz
2150    
2151    /(?(?<=foo)bar|cat)/
2152        foobar
2153        cat
2154        fcat
2155        focat
2156        *** Failers
2157        foocat
2158    
2159    /(?(?<!foo)cat|bar)/
2160        foobar
2161        cat
2162        fcat
2163        focat
2164        *** Failers
2165        foocat
2166    
2167    /( \( )? [^()]+ (?(1) \) |) /x
2168        abcd
2169        (abcd)
2170        the quick (abcd) fox
2171        (abcd
2172    
2173    /( \( )? [^()]+ (?(1) \) ) /x
2174        abcd
2175        (abcd)
2176        the quick (abcd) fox
2177        (abcd
2178    
2179    /^(?(2)a|(1)(2))+$/
2180        12
2181        12a
2182        12aa
2183        *** Failers
2184        1234
2185    
2186    /((?i)blah)\s+\1/
2187        blah blah
2188        BLAH BLAH
2189        Blah Blah
2190        blaH blaH
2191        *** Failers
2192        blah BLAH
2193        Blah blah
2194        blaH blah
2195    
2196    /((?i)blah)\s+(?i:\1)/
2197        blah blah
2198        BLAH BLAH
2199        Blah Blah
2200        blaH blaH
2201        blah BLAH
2202        Blah blah
2203        blaH blah
2204    
2205    /(?>a*)*/
2206        a
2207        aa
2208        aaaa
2209    
2210    /(abc|)+/
2211        abc
2212        abcabc
2213        abcabcabc
2214        xyz
2215    
2216    /([a]*)*/
2217        a
2218        aaaaa
2219    
2220    /([ab]*)*/
2221        a
2222        b
2223        ababab
2224        aaaabcde
2225        bbbb
2226    
2227    /([^a]*)*/
2228        b
2229        bbbb
2230        aaa
2231    
2232    /([^ab]*)*/
2233        cccc
2234        abab
2235    
2236    /([a]*?)*/
2237        a
2238        aaaa
2239    
2240    /([ab]*?)*/
2241        a
2242        b
2243        abab
2244        baba
2245    
2246    /([^a]*?)*/
2247        b
2248        bbbb
2249        aaa
2250    
2251    /([^ab]*?)*/
2252        c
2253        cccc
2254        baba
2255    
2256    /(?>a*)*/
2257        a
2258        aaabcde
2259    
2260    /((?>a*))*/
2261        aaaaa
2262        aabbaa
2263    
2264    /((?>a*?))*/
2265        aaaaa
2266        aabbaa
2267    
2268    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
2269        12-sep-98
2270        12-09-98
2271        *** Failers
2272        sep-12-98
2273    
2274    /(?<=(foo))bar\1/
2275        foobarfoo
2276        foobarfootling
2277        *** Failers
2278        foobar
2279        barfoo
2280    
2281    /(?i:saturday|sunday)/
2282        saturday
2283        sunday
2284        Saturday
2285        Sunday
2286        SATURDAY
2287        SUNDAY
2288        SunDay
2289    
2290    /(a(?i)bc|BB)x/
2291        abcx
2292        aBCx
2293        bbx
2294        BBx
2295        *** Failers
2296        abcX
2297        aBCX
2298        bbX
2299        BBX
2300    
2301    /^([ab](?i)[cd]|[ef])/
2302        ac
2303        aC
2304        bD
2305        elephant
2306        Europe
2307        frog
2308        France
2309        *** Failers
2310        Africa
2311    
2312    /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
2313        ab
2314        aBd
2315        xy
2316        xY
2317        zebra
2318        Zambesi
2319        *** Failers
2320        aCD
2321        XY
2322    
2323    /(?<=foo\n)^bar/m
2324        foo\nbar
2325        *** Failers
2326        bar
2327        baz\nbar
2328    
2329    /(?<=(?<!foo)bar)baz/
2330        barbaz
2331        barbarbaz
2332        koobarbaz
2333        *** Failers
2334        baz
2335        foobarbaz
2336    
2337    /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
2338    /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
2339    /where it does set $1 to aa when matching aaaaaa./
2340    
2341    /^(a\1?){4}$/
2342        a
2343        aa
2344        aaa
2345        aaaa
2346        aaaaa
2347        aaaaaaa
2348        aaaaaaaa
2349        aaaaaaaaa
2350        aaaaaaaaaa
2351        aaaaaaaaaaa
2352        aaaaaaaaaaaa
2353        aaaaaaaaaaaaa
2354        aaaaaaaaaaaaaa
2355        aaaaaaaaaaaaaaa
2356        aaaaaaaaaaaaaaaa
2357    
2358    /^(a\1?)(a\1?)(a\2?)(a\3?)$/
2359        a
2360        aa
2361        aaa
2362        aaaa
2363        aaaaa
2364        aaaaaa
2365        aaaaaaa
2366        aaaaaaaa
2367        aaaaaaaaa
2368        aaaaaaaaaa
2369        aaaaaaaaaaa
2370        aaaaaaaaaaaa
2371        aaaaaaaaaaaaa
2372        aaaaaaaaaaaaaa
2373        aaaaaaaaaaaaaaa
2374        aaaaaaaaaaaaaaaa
2375    
2376    /The following tests are taken from the Perl 5.005 test suite; some of them/
2377    /are compatible with 5.004, but I'd rather not have to sort them out./
2378    
2379    /abc/
2380        abc
2381        xabcy
2382        ababc
2383        *** Failers
2384        xbc
2385        axc
2386        abx
2387    
2388    /ab*c/
2389        abc
2390    
2391    /ab*bc/
2392        abc
2393        abbc
2394        abbbbc
2395    
2396    /.{1}/
2397        abbbbc
2398    
2399    /.{3,4}/
2400        abbbbc
2401    
2402    /ab{0,}bc/
2403        abbbbc
2404    
2405    /ab+bc/
2406        abbc
2407        *** Failers
2408        abc
2409        abq
2410    
2411    /ab{1,}bc/
2412    
2413    /ab+bc/
2414        abbbbc
2415    
2416    /ab{1,}bc/
2417        abbbbc
2418    
2419    /ab{1,3}bc/
2420        abbbbc
2421    
2422    /ab{3,4}bc/
2423        abbbbc
2424    
2425    /ab{4,5}bc/
2426        *** Failers
2427        abq
2428        abbbbc
2429    
2430    /ab?bc/
2431        abbc
2432        abc
2433    
2434    /ab{0,1}bc/
2435        abc
2436    
2437    /ab?bc/
2438    
2439    /ab?c/
2440        abc
2441    
2442    /ab{0,1}c/
2443        abc
2444    
2445    /^abc$/
2446        abc
2447        *** Failers
2448        abbbbc
2449        abcc
2450    
2451    /^abc/
2452        abcc
2453    
2454    /^abc$/
2455    
2456    /abc$/
2457        aabc
2458        *** Failers
2459        aabc
2460        aabcd
2461    
2462    /^/
2463        abc
2464    
2465    /$/
2466        abc
2467    
2468    /a.c/
2469        abc
2470        axc
2471    
2472    /a.*c/
2473        axyzc
2474    
2475    /a[bc]d/
2476        abd
2477        *** Failers
2478        axyzd
2479        abc
2480    
2481    /a[b-d]e/
2482        ace
2483    
2484    /a[b-d]/
2485        aac
2486    
2487    /a[-b]/
2488        a-
2489    
2490    /a[b-]/
2491        a-
2492    
2493    /a]/
2494        a]
2495    
2496    /a[]]b/
2497        a]b
2498    
2499    /a[^bc]d/
2500        aed
2501        *** Failers
2502        abd
2503        abd
2504    
2505    /a[^-b]c/
2506        adc
2507    
2508    /a[^]b]c/
2509        adc
2510        *** Failers
2511        a-c
2512        a]c
2513    
2514    /\ba\b/
2515        a-
2516        -a
2517        -a-
2518    
2519    /\by\b/
2520        *** Failers
2521        xy
2522        yz
2523        xyz
2524    
2525    /\Ba\B/
2526        *** Failers
2527        a-
2528        -a
2529        -a-
2530    
2531    /\By\b/
2532        xy
2533    
2534    /\by\B/
2535        yz
2536    
2537    /\By\B/
2538        xyz
2539    
2540    /\w/
2541        a
2542    
2543    /\W/
2544        -
2545        *** Failers
2546        -
2547        a
2548    
2549    /a\sb/
2550        a b
2551    
2552    /a\Sb/
2553        a-b
2554        *** Failers
2555        a-b
2556        a b
2557    
2558    /\d/
2559        1
2560    
2561    /\D/
2562        -
2563        *** Failers
2564        -
2565        1
2566    
2567    /[\w]/
2568        a
2569    
2570    /[\W]/
2571        -
2572        *** Failers
2573        -
2574        a
2575    
2576    /a[\s]b/
2577        a b
2578    
2579    /a[\S]b/
2580        a-b
2581        *** Failers
2582        a-b
2583        a b
2584    
2585    /[\d]/
2586        1
2587    
2588    /[\D]/
2589        -
2590        *** Failers
2591        -
2592        1
2593    
2594    /ab|cd/
2595        abc
2596        abcd
2597    
2598    /()ef/
2599        def
2600    
2601    /$b/
2602    
2603    /a\(b/
2604        a(b
2605    
2606    /a\(*b/
2607        ab
2608        a((b
2609    
2610    /a\\b/
2611        a\b
2612    
2613    /((a))/
2614        abc
2615    
2616    /(a)b(c)/
2617        abc
2618    
2619    /a+b+c/
2620        aabbabc
2621    
2622    /a{1,}b{1,}c/
2623        aabbabc
2624    
2625    /a.+?c/
2626        abcabc
2627    
2628    /(a+|b)*/
2629        ab
2630    
2631    /(a+|b){0,}/
2632        ab
2633    
2634    /(a+|b)+/
2635        ab
2636    
2637    /(a+|b){1,}/
2638        ab
2639    
2640    /(a+|b)?/
2641        ab
2642    
2643    /(a+|b){0,1}/
2644        ab
2645    
2646    /[^ab]*/
2647        cde
2648    
2649    /abc/
2650        *** Failers
2651        b
2652    
2653    
2654    /a*/
2655    
2656    
2657    /([abc])*d/
2658        abbbcd
2659    
2660    /([abc])*bcd/
2661        abcd
2662    
2663    /a|b|c|d|e/
2664        e
2665    
2666    /(a|b|c|d|e)f/
2667        ef
2668    
2669    /abcd*efg/
2670        abcdefg
2671    
2672    /ab*/
2673        xabyabbbz
2674        xayabbbz
2675    
2676    /(ab|cd)e/
2677        abcde
2678    
2679    /[abhgefdc]ij/
2680        hij
2681    
2682    /^(ab|cd)e/
2683    
2684    /(abc|)ef/
2685        abcdef
2686    
2687    /(a|b)c*d/
2688        abcd
2689    
2690    /(ab|ab*)bc/
2691        abc
2692    
2693    /a([bc]*)c*/
2694        abc
2695    
2696    /a([bc]*)(c*d)/
2697        abcd
2698    
2699    /a([bc]+)(c*d)/
2700        abcd
2701    
2702    /a([bc]*)(c+d)/
2703        abcd
2704    
2705    /a[bcd]*dcdcde/
2706        adcdcde
2707    
2708    /a[bcd]+dcdcde/
2709        *** Failers
2710        abcde
2711        adcdcde
2712    
2713    /(ab|a)b*c/
2714        abc
2715    
2716    /((a)(b)c)(d)/
2717        abcd
2718    
2719    /[a-zA-Z_][a-zA-Z0-9_]*/
2720        alpha
2721    
2722    /^a(bc+|b[eh])g|.h$/
2723        abh
2724    
2725    /(bc+d$|ef*g.|h?i(j|k))/
2726        effgz
2727        ij
2728        reffgz
2729        *** Failers
2730        effg
2731        bcdd
2732    
2733    /((((((((((a))))))))))/
2734        a
2735    
2736    /((((((((((a))))))))))\10/
2737        aa
2738    
2739    /(((((((((a)))))))))/
2740        a
2741    
2742    /multiple words of text/
2743        *** Failers
2744        aa
2745        uh-uh
2746    
2747    /multiple words/
2748        multiple words, yeah
2749    
2750    /(.*)c(.*)/
2751        abcde
2752    
2753    /\((.*), (.*)\)/
2754        (a, b)
2755    
2756    /[k]/
2757    
2758    /abcd/
2759        abcd
2760    
2761    /a(bc)d/
2762        abcd
2763    
2764    /a[-]?c/
2765        ac
2766    
2767    /(abc)\1/
2768        abcabc
2769    
2770    /([a-c]*)\1/
2771        abcabc
2772    
2773    /(a)|\1/
2774        a
2775        *** Failers
2776        ab
2777        x
2778    
2779    /(([a-c])b*?\2)*/
2780        ababbbcbc
2781    
2782    /(([a-c])b*?\2){3}/
2783        ababbbcbc
2784    
2785    /((\3|b)\2(a)x)+/
2786        aaaxabaxbaaxbbax
2787    
2788    /((\3|b)\2(a)){2,}/
2789        bbaababbabaaaaabbaaaabba
2790    
2791    /abc/i
2792        ABC
2793        XABCY
2794        ABABC
2795        *** Failers
2796        aaxabxbaxbbx
2797        XBC
2798        AXC
2799        ABX
2800    
2801    /ab*c/i
2802        ABC
2803    
2804    /ab*bc/i
2805        ABC
2806        ABBC
2807    
2808    /ab*?bc/i
2809        ABBBBC
2810    
2811    /ab{0,}?bc/i
2812        ABBBBC
2813    
2814    /ab+?bc/i
2815        ABBC
2816    
2817    /ab+bc/i
2818        *** Failers
2819        ABC
2820        ABQ
2821    
2822    /ab{1,}bc/i
2823    
2824    /ab+bc/i
2825        ABBBBC
2826    
2827    /ab{1,}?bc/i
2828        ABBBBC
2829    
2830    /ab{1,3}?bc/i
2831        ABBBBC
2832    
2833    /ab{3,4}?bc/i
2834        ABBBBC
2835    
2836    /ab{4,5}?bc/i
2837        *** Failers
2838        ABQ
2839        ABBBBC
2840    
2841    /ab??bc/i
2842        ABBC
2843        ABC
2844    
2845    /ab{0,1}?bc/i
2846        ABC
2847    
2848    /ab??bc/i
2849    
2850    /ab??c/i
2851        ABC
2852    
2853    /ab{0,1}?c/i
2854        ABC
2855    
2856    /^abc$/i
2857        ABC
2858        *** Failers
2859        ABBBBC
2860        ABCC
2861    
2862    /^abc/i
2863        ABCC
2864    
2865    /^abc$/i
2866    
2867    /abc$/i
2868        AABC
2869    
2870    /^/i
2871        ABC
2872    
2873    /$/i
2874        ABC
2875    
2876    /a.c/i
2877        ABC
2878        AXC
2879    
2880    /a.*?c/i
2881        AXYZC
2882    
2883    /a.*c/i
2884        *** Failers
2885        AABC
2886        AXYZD
2887    
2888    /a[bc]d/i
2889        ABD
2890    
2891    /a[b-d]e/i
2892        ACE
2893        *** Failers
2894        ABC
2895        ABD
2896    
2897    /a[b-d]/i
2898        AAC
2899    
2900    /a[-b]/i
2901        A-
2902    
2903    /a[b-]/i
2904        A-
2905    
2906    /a]/i
2907        A]
2908    
2909    /a[]]b/i
2910        A]B
2911    
2912    /a[^bc]d/i
2913        AED
2914    
2915    /a[^-b]c/i
2916        ADC
2917        *** Failers
2918        ABD
2919        A-C
2920    
2921    /a[^]b]c/i
2922        ADC
2923    
2924    /ab|cd/i
2925        ABC
2926        ABCD
2927    
2928    /()ef/i
2929        DEF
2930    
2931    /$b/i
2932        *** Failers
2933        A]C
2934        B
2935    
2936    /a\(b/i
2937        A(B
2938    
2939    /a\(*b/i
2940        AB
2941        A((B
2942    
2943    /a\\b/i
2944        A\B
2945    
2946    /((a))/i
2947        ABC
2948    
2949    /(a)b(c)/i
2950        ABC
2951    
2952    /a+b+c/i
2953        AABBABC
2954    
2955    /a{1,}b{1,}c/i
2956        AABBABC
2957    
2958    /a.+?c/i
2959        ABCABC
2960    
2961    /a.*?c/i
2962        ABCABC
2963    
2964    /a.{0,5}?c/i
2965        ABCABC
2966    
2967    /(a+|b)*/i
2968        AB
2969    
2970    /(a+|b){0,}/i
2971        AB
2972    
2973    /(a+|b)+/i
2974        AB
2975    
2976    /(a+|b){1,}/i
2977        AB
2978    
2979    /(a+|b)?/i
2980        AB
2981    
2982    /(a+|b){0,1}/i
2983        AB
2984    
2985    /(a+|b){0,1}?/i
2986        AB
2987    
2988    /[^ab]*/i
2989        CDE
2990    
2991    /abc/i
2992    
2993    /a*/i
2994    
2995    
2996    /([abc])*d/i
2997        ABBBCD
2998    
2999    /([abc])*bcd/i
3000        ABCD
3001    
3002    /a|b|c|d|e/i
3003        E
3004    
3005    /(a|b|c|d|e)f/i
3006        EF
3007    
3008    /abcd*efg/i
3009        ABCDEFG
3010    
3011    /ab*/i
3012        XABYABBBZ
3013        XAYABBBZ
3014    
3015    /(ab|cd)e/i
3016        ABCDE
3017    
3018    /[abhgefdc]ij/i
3019        HIJ
3020    
3021    /^(ab|cd)e/i
3022        ABCDE
3023    
3024    /(abc|)ef/i
3025        ABCDEF
3026    
3027    /(a|b)c*d/i
3028        ABCD
3029    
3030    /(ab|ab*)bc/i
3031        ABC
3032    
3033    /a([bc]*)c*/i
3034        ABC
3035    
3036    /a([bc]*)(c*d)/i
3037        ABCD
3038    
3039    /a([bc]+)(c*d)/i
3040        ABCD
3041    
3042    /a([bc]*)(c+d)/i
3043        ABCD
3044    
3045    /a[bcd]*dcdcde/i
3046        ADCDCDE
3047    
3048    /a[bcd]+dcdcde/i
3049    
3050    /(ab|a)b*c/i
3051        ABC
3052    
3053    /((a)(b)c)(d)/i
3054        ABCD
3055    
3056    /[a-zA-Z_][a-zA-Z0-9_]*/i
3057        ALPHA
3058    
3059    /^a(bc+|b[eh])g|.h$/i
3060        ABH
3061    
3062    /(bc+d$|ef*g.|h?i(j|k))/i
3063        EFFGZ
3064        IJ
3065        REFFGZ
3066        *** Failers
3067        ADCDCDE
3068        EFFG
3069        BCDD
3070    
3071    /((((((((((a))))))))))/i
3072        A
3073    
3074    /((((((((((a))))))))))\10/i
3075        AA
3076    
3077    /(((((((((a)))))))))/i
3078        A
3079    
3080    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3081        A
3082    
3083    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3084        C
3085    
3086    /multiple words of text/i
3087        *** Failers
3088        AA
3089        UH-UH
3090    
3091    /multiple words/i
3092        MULTIPLE WORDS, YEAH
3093    
3094    /(.*)c(.*)/i
3095        ABCDE
3096    
3097    /\((.*), (.*)\)/i
3098        (A, B)
3099    
3100    /[k]/i
3101    
3102    /abcd/i
3103        ABCD
3104    
3105    /a(bc)d/i
3106        ABCD
3107    
3108    /a[-]?c/i
3109        AC
3110    
3111    /(abc)\1/i
3112        ABCABC
3113    
3114    /([a-c]*)\1/i
3115        ABCABC
3116    
3117    /a(?!b)./
3118        abad
3119    
3120    /a(?=d)./
3121        abad
3122    
3123    /a(?=c|d)./
3124        abad
3125    
3126    /a(?:b|c|d)(.)/
3127        ace
3128    
3129    /a(?:b|c|d)*(.)/
3130        ace
3131    
3132    /a(?:b|c|d)+?(.)/
3133        ace
3134        acdbcdbe
3135    
3136    /a(?:b|c|d)+(.)/
3137        acdbcdbe
3138    
3139    /a(?:b|c|d){2}(.)/
3140        acdbcdbe
3141    
3142    /a(?:b|c|d){4,5}(.)/
3143        acdbcdbe
3144    
3145    /a(?:b|c|d){4,5}?(.)/
3146        acdbcdbe
3147    
3148    /((foo)|(bar))*/
3149        foobar
3150    
3151    /a(?:b|c|d){6,7}(.)/
3152        acdbcdbe
3153    
3154    /a(?:b|c|d){6,7}?(.)/
3155        acdbcdbe
3156    
3157    /a(?:b|c|d){5,6}(.)/
3158        acdbcdbe
3159    
3160    /a(?:b|c|d){5,6}?(.)/
3161        acdbcdbe
3162    
3163    /a(?:b|c|d){5,7}(.)/
3164        acdbcdbe
3165    
3166    /a(?:b|c|d){5,7}?(.)/
3167        acdbcdbe
3168    
3169    /a(?:b|(c|e){1,2}?|d)+?(.)/
3170        ace
3171    
3172    /^(.+)?B/
3173        AB
3174    
3175    /^([^a-z])|(\^)$/
3176        .
3177    
3178    /^[<>]&/
3179        <&OUT
3180    
3181    /^(a\1?){4}$/
3182        aaaaaaaaaa
3183        *** Failers
3184        AB
3185        aaaaaaaaa
3186        aaaaaaaaaaa
3187    
3188    /^(a(?(1)\1)){4}$/
3189        aaaaaaaaaa
3190        *** Failers
3191        aaaaaaaaa
3192        aaaaaaaaaaa
3193    
3194    /(?:(f)(o)(o)|(b)(a)(r))*/
3195        foobar
3196    
3197    /(?<=a)b/
3198        ab
3199        *** Failers
3200        cb
3201        b
3202    
3203    /(?<!c)b/
3204        ab
3205        b
3206        b
3207    
3208    /(?:..)*a/
3209        aba
3210    
3211    /(?:..)*?a/
3212        aba
3213    
3214    /^(?:b|a(?=(.)))*\1/
3215        abc
3216    
3217    /^(){3,5}/
3218        abc
3219    
3220    /^(a+)*ax/
3221        aax
3222    
3223    /^((a|b)+)*ax/
3224        aax
3225    
3226    /^((a|bc)+)*ax/
3227        aax
3228    
3229    /(a|x)*ab/
3230        cab
3231    
3232    /(a)*ab/
3233        cab
3234    
3235    /(?:(?i)a)b/
3236        ab
3237    
3238    /((?i)a)b/
3239        ab
3240    
3241    /(?:(?i)a)b/
3242        Ab
3243    
3244    /((?i)a)b/
3245        Ab
3246    
3247    /(?:(?i)a)b/
3248        *** Failers
3249        cb
3250        aB
3251    
3252    /((?i)a)b/
3253    
3254    /(?i:a)b/
3255        ab
3256    
3257    /((?i:a))b/
3258        ab
3259    
3260    /(?i:a)b/
3261        Ab
3262    
3263    /((?i:a))b/
3264        Ab
3265    
3266    /(?i:a)b/
3267        *** Failers
3268        aB
3269        aB
3270    
3271    /((?i:a))b/
3272    
3273    /(?:(?-i)a)b/i
3274        ab
3275    
3276    /((?-i)a)b/i
3277        ab
3278    
3279    /(?:(?-i)a)b/i
3280        aB
3281    
3282    /((?-i)a)b/i
3283        aB
3284    
3285    /(?:(?-i)a)b/i
3286        *** Failers
3287        aB
3288        Ab
3289    
3290    /((?-i)a)b/i
3291    
3292    /(?:(?-i)a)b/i
3293        aB
3294    
3295    /((?-i)a)b/i
3296        aB
3297    
3298    /(?:(?-i)a)b/i
3299        *** Failers
3300        Ab
3301        AB
3302    
3303    /((?-i)a)b/i
3304    
3305    /(?-i:a)b/i
3306        ab
3307    
3308    /((?-i:a))b/i
3309        ab
3310    
3311    /(?-i:a)b/i
3312        aB
3313    
3314    /((?-i:a))b/i
3315        aB
3316    
3317    /(?-i:a)b/i
3318        *** Failers
3319        AB
3320        Ab
3321    
3322    /((?-i:a))b/i
3323    
3324    /(?-i:a)b/i
3325        aB
3326    
3327    /((?-i:a))b/i
3328        aB
3329    
3330    /(?-i:a)b/i
3331        *** Failers
3332        Ab
3333        AB
3334    
3335    /((?-i:a))b/i
3336    
3337    /((?-i:a.))b/i
3338        *** Failers
3339        AB
3340        a\nB
3341    
3342    /((?s-i:a.))b/i
3343        a\nB
3344    
3345    /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3346        cabbbb
3347    
3348    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3349        caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3350    
3351    /(ab)\d\1/i
3352        Ab4ab
3353        ab4Ab
3354    
3355    /foo\w*\d{4}baz/
3356        foobar1234baz
3357    
3358    /x(~~)*(?:(?:F)?)?/
3359        x~~
3360    
3361    /^a(?#xxx){3}c/
3362        aaac
3363    
3364    /^a (?#xxx) (?#yyy) {3}c/x
3365        aaac
3366    
3367    /(?<![cd])b/
3368        *** Failers
3369        B\nB
3370        dbcb
3371    
3372    /(?<![cd])[ab]/
3373        dbaacb
3374    
3375    /(?<!(c|d))b/
3376    
3377    /(?<!(c|d))[ab]/
3378        dbaacb
3379    
3380    /(?<!cd)[ab]/
3381        cdaccb
3382    
3383    /^(?:a?b?)*$/
3384        *** Failers
3385        dbcb
3386        a--
3387    
3388    /((?s)^a(.))((?m)^b$)/
3389        a\nb\nc\n
3390    
3391    /((?m)^b$)/
3392        a\nb\nc\n
3393    
3394    /(?m)^b/
3395        a\nb\n
3396    
3397    /(?m)^(b)/
3398        a\nb\n
3399    
3400    /((?m)^b)/
3401        a\nb\n
3402    
3403    /\n((?m)^b)/
3404        a\nb\n
3405    
3406    /((?s).)c(?!.)/
3407        a\nb\nc\n
3408        a\nb\nc\n
3409    
3410    /((?s)b.)c(?!.)/
3411        a\nb\nc\n
3412        a\nb\nc\n
3413    
3414    /^b/
3415    
3416    /()^b/
3417        *** Failers
3418        a\nb\nc\n
3419        a\nb\nc\n
3420    
3421    /((?m)^b)/
3422        a\nb\nc\n
3423    
3424    /(?(1)a|b)/
3425    
3426    /(?(1)b|a)/
3427        a
3428    
3429    /(x)?(?(1)a|b)/
3430        *** Failers
3431        a
3432        a
3433    
3434    /(x)?(?(1)b|a)/
3435        a
3436    
3437    /()?(?(1)b|a)/
3438        a
3439    
3440    /()(?(1)b|a)/
3441    
3442    /()?(?(1)a|b)/
3443        a
3444    
3445    /^(\()?blah(?(1)(\)))$/
3446        (blah)
3447        blah
3448        *** Failers
3449        a
3450        blah)
3451        (blah
3452    
3453    /^(\(+)?blah(?(1)(\)))$/
3454        (blah)
3455        blah
3456        *** Failers
3457        blah)
3458        (blah
3459    
3460    /(?(?!a)a|b)/
3461    
3462    /(?(?!a)b|a)/
3463        a
3464    
3465    /(?(?=a)b|a)/
3466        *** Failers
3467        a
3468        a
3469    
3470    /(?(?=a)a|b)/
3471        a
3472    
3473    /(?=(a+?))(\1ab)/
3474        aaab
3475    
3476    /^(?=(a+?))\1ab/
3477    
3478    /(\w+:)+/
3479        one:
3480    
3481    /$(?<=^(a))/
3482        a
3483    
3484    /(?=(a+?))(\1ab)/
3485        aaab
3486    
3487    /^(?=(a+?))\1ab/
3488        *** Failers
3489        aaab
3490        aaab
3491    
3492    /([\w:]+::)?(\w+)$/
3493        abcd
3494        xy:z:::abcd
3495    
3496    /^[^bcd]*(c+)/
3497        aexycd
3498    
3499    /(a*)b+/
3500        caab
3501    
3502    /([\w:]+::)?(\w+)$/
3503        abcd
3504        xy:z:::abcd
3505        *** Failers
3506        abcd:
3507        abcd:
3508    
3509    /^[^bcd]*(c+)/
3510        aexycd
3511    
3512    /(>a+)ab/
3513    
3514    /(?>a+)b/
3515        aaab
3516    
3517    /([[:]+)/
3518        a:[b]:
3519    
3520    /([[=]+)/
3521        a=[b]=
3522    
3523    /([[.]+)/
3524        a.[b].
3525    
3526    /((?>a+)b)/
3527        aaab
3528    
3529    /(?>(a+))b/
3530        aaab
3531    
3532    /((?>[^()]+)|\([^()]*\))+/
3533        ((abc(ade)ufh()()x
3534    
3535    /a\Z/
3536        *** Failers
3537        aaab
3538        a\nb\n
3539    
3540    /b\Z/
3541        a\nb\n
3542    
3543    /b\z/
3544    
3545    /b\Z/
3546        a\nb
3547    
3548    /b\z/
3549        a\nb
3550        *** Failers
3551    
3552    /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
3553        a
3554        abc
3555        a-b
3556        0-9
3557        a.b
3558        5.6.7
3559        the.quick.brown.fox
3560        a100.b200.300c
3561        12-ab.1245
3562        *** Failers
3563        \
3564        .a
3565        -a
3566        a-
3567        a.
3568        a_b
3569        a.-
3570        a..
3571        ab..bc
3572        the.quick.brown.fox-
3573        the.quick.brown.fox.
3574        the.quick.brown.fox_
3575        the.quick.brown.fox+
3576    
3577    /(?>.*)(?<=(abcd|wxyz))/
3578        alphabetabcd
3579        endingwxyz
3580        *** Failers
3581        a rather long string that doesn't end with one of them
3582    
3583    /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
3584        word cat dog elephant mussel cow horse canary baboon snake shark otherword
3585        word cat dog elephant mussel cow horse canary baboon snake shark
3586    
3587    /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
3588        word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
3589    
3590    /(?<=\d{3}(?!999))foo/
3591        999foo
3592        123999foo
3593        *** Failers
3594        123abcfoo
3595    
3596    /(?<=(?!...999)\d{3})foo/
3597        999foo
3598        123999foo
3599        *** Failers
3600        123abcfoo
3601    
3602    /(?<=\d{3}(?!999)...)foo/
3603        123abcfoo
3604        123456foo
3605        *** Failers
3606        123999foo
3607    
3608    /(?<=\d{3}...)(?<!999)foo/
3609        123abcfoo
3610        123456foo
3611        *** Failers
3612        123999foo
3613    
3614    /<a[\s]+href[\s]*=[\s]*          # find <a href=
3615     ([\"\'])?                       # find single or double quote
3616     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
3617                                     # quote, otherwise match up to next space
3618    /isx
3619        <a href=abcd xyz
3620        <a href=\"abcd xyz pqr\" cats
3621        <a href=\'abcd xyz pqr\' cats
3622    
3623    /<a\s+href\s*=\s*                # find <a href=
3624     (["'])?                         # find single or double quote
3625     (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
3626                                     # quote, otherwise match up to next space
3627    /isx
3628        <a href=abcd xyz
3629        <a href=\"abcd xyz pqr\" cats
3630        <a href       =       \'abcd xyz pqr\' cats
3631    
3632    /<a\s+href(?>\s*)=(?>\s*)        # find <a href=
3633     (["'])?                         # find single or double quote
3634     (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
3635                                     # quote, otherwise match up to next space
3636    /isx
3637        <a href=abcd xyz
3638        <a href=\"abcd xyz pqr\" cats
3639        <a href       =       \'abcd xyz pqr\' cats
3640    
3641    /((Z)+|A)*/
3642        ZABCDEFG
3643    
3644    /(Z()|A)*/
3645        ZABCDEFG
3646    
3647    /(Z(())|A)*/
3648        ZABCDEFG
3649    
3650    /((?>Z)+|A)*/
3651        ZABCDEFG
3652    
3653    /((?>)+|A)*/
3654        ZABCDEFG
3655    
3656    /a*/g
3657        abbab
3658    
3659    /^[a-\d]/
3660        abcde
3661        -things
3662        0digit
3663        *** Failers
3664        bcdef
3665    
3666    /^[\d-a]/
3667        abcde
3668        -things
3669        0digit
3670        *** Failers
3671        bcdef
3672    
3673    /[[:space:]]+/
3674        > \x09\x0a\x0c\x0d\x0b<
3675    
3676    /[[:blank:]]+/
3677        > \x09\x0a\x0c\x0d\x0b<
3678    
3679    /[\s]+/
3680        > \x09\x0a\x0c\x0d\x0b<
3681    
3682    /\s+/
3683        > \x09\x0a\x0c\x0d\x0b<
3684    
3685    /a b/x
3686        ab
3687    
3688    /(?!\A)x/m
3689      a\nxb\n
3690    
3691    /(?!^)x/m
3692      a\nxb\n
3693    
3694    /abc\Qabc\Eabc/
3695        abcabcabc
3696    
3697    /abc\Q(*+|\Eabc/
3698        abc(*+|abc
3699    
3700    /   abc\Q abc\Eabc/x
3701        abc abcabc
3702        *** Failers
3703        abcabcabc
3704    
3705    /abc#comment
3706        \Q#not comment
3707        literal\E/x
3708        abc#not comment\n    literal
3709    
3710    /abc#comment
3711        \Q#not comment
3712        literal/x
3713        abc#not comment\n    literal
3714    
3715    /abc#comment
3716        \Q#not comment
3717        literal\E #more comment
3718        /x
3719        abc#not comment\n    literal
3720    
3721    /abc#comment
3722        \Q#not comment
3723        literal\E #more comment/x
3724        abc#not comment\n    literal
3725    
3726    /\Qabc\$xyz\E/
3727        abc\\\$xyz
3728    
3729    /\Qabc\E\$\Qxyz\E/
3730        abc\$xyz
3731    
3732    /\Gabc/
3733        abc
3734        *** Failers
3735        xyzabc
3736    
3737    /\Gabc./g
3738        abc1abc2xyzabc3
3739    
3740    /abc./g
3741        abc1abc2xyzabc3
3742    
3743    /a(?x: b c )d/
3744        XabcdY
3745        *** Failers
3746        Xa b c d Y
3747    
3748    /((?x)x y z | a b c)/
3749        XabcY
3750        AxyzB
3751    
3752    /(?i)AB(?-i)C/
3753        XabCY
3754        *** Failers
3755        XabcY
3756    
3757    /((?i)AB(?-i)C|D)E/
3758        abCE
3759        DE
3760        *** Failers
3761        abcE
3762        abCe
3763        dE
3764        De
3765    
3766    /(.*)\d+\1/
3767        abc123abc
3768        abc123bc
3769    
3770    /(.*)\d+\1/s
3771        abc123abc
3772        abc123bc
3773    
3774    /((.*))\d+\1/
3775        abc123abc
3776        abc123bc
3777    
3778    /-- This tests for an IPv6 address in the form where it can have up to --/
3779    /-- eight components, one and only one of which is empty. This must be --/
3780    /-- an internal component. --/
3781    
3782    /^(?!:)                       # colon disallowed at start
3783      (?:                         # start of item
3784        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
3785        (?(1)0 | () ) )           # if null previously matched, fail; else null
3786        :                         # followed by colon
3787      ){1,7}                      # end item; 1-7 of them required
3788      [0-9a-f]{1,4} $             # final hex number at end of string
3789      (?(1)|.)                    # check that there was an empty component
3790      /xi
3791        a123::a123
3792        a123:b342::abcd
3793        a123:b342::324e:abcd
3794        a123:ddde:b342::324e:abcd
3795        a123:ddde:b342::324e:dcba:abcd
3796        a123:ddde:9999:b342::324e:dcba:abcd
3797        *** Failers
3798        1:2:3:4:5:6:7:8
3799        a123:bce:ddde:9999:b342::324e:dcba:abcd
3800        a123::9999:b342::324e:dcba:abcd
3801        abcde:2:3:4:5:6:7:8
3802        ::1
3803        abcd:fee0:123::
3804        :1
3805        1:
3806    
3807    /[z\Qa-d]\E]/
3808        z
3809        a
3810        -
3811        d
3812        ]
3813        *** Failers
3814        b
3815    
3816    /[\z\C]/
3817        z
3818        C
3819    
3820    /\M/
3821        M
3822    
3823  / End of testinput1 /  / End of testinput1 /

Legend:
Removed from v.55  
changed lines
  Added in v.63

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12