summaryrefslogtreecommitdiff
path: root/testdata/testinput14
blob: 69ca2b6a834f7330a09ae489ffe8455735203947 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# These are:
#
# (1) Tests of the match-limiting features. The results are different for
# interpretive or JIT matching, so this test should not be run with JIT. The
# same tests are run using JIT in test 16.

# (2) Other tests that must not be run with JIT.

/(a+)*zz/I
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits
  aaaaaaaaaaaaaz\=find_limits

!((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I
   /* this is a C style comment */\=find_limits

/^(?>a)++/
    aa\=find_limits
    aaaaaaaaa\=find_limits
    
/(a)(?1)++/
    aa\=find_limits
    aaaaaaaaa\=find_limits

/a(?:.)*?a/ims
    abbbbbbbbbbbbbbbbbbbbba\=find_limits
    
/a(?:.(*THEN))*?a/ims
    abbbbbbbbbbbbbbbbbbbbba\=find_limits

/a(?:.(*THEN:ABC))*?a/ims
    abbbbbbbbbbbbbbbbbbbbba\=find_limits

/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
     aabbccddee\=find_limits

/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
     aabbccddee\=find_limits

/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
     aabbccddee\=find_limits

/(*LIMIT_MATCH=12bc)abc/

/(*LIMIT_MATCH=4294967290)abc/

/(*LIMIT_RECURSION=4294967280)abc/I

/(a+)*zz/
    aaaaaaaaaaaaaz
    aaaaaaaaaaaaaz\=match_limit=3000

/(a+)*zz/
    aaaaaaaaaaaaaz\=recursion_limit=10

/(*LIMIT_MATCH=3000)(a+)*zz/I
    aaaaaaaaaaaaaz
    aaaaaaaaaaaaaz\=match_limit=60000

/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
    aaaaaaaaaaaaaz

/(*LIMIT_MATCH=60000)(a+)*zz/I
    aaaaaaaaaaaaaz
    aaaaaaaaaaaaaz\=match_limit=3000

/(*LIMIT_RECURSION=10)(a+)*zz/I
    aaaaaaaaaaaaaz
    aaaaaaaaaaaaaz\=recursion_limit=1000

/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/I
    aaaaaaaaaaaaaz

/(*LIMIT_RECURSION=1000)(a+)*zz/I
    aaaaaaaaaaaaaz
    aaaaaaaaaaaaaz\=recursion_limit=10
    
# These three have infinitely nested recursions. 
    
/((?2))((?1))/
    abc

/((?(R2)a+|(?1)b))/
    aaaabcde

/(?(R)a*(?1)|((?R))b)/
    aaaabcde
    
# The allusedtext modifier does not work with JIT, which does not maintain
# the leftchar/rightchar data.

/abc(?=xyz)/allusedtext
    abcxyzpqr
    abcxyzpqr\=aftertext
    
/(?<=pqr)abc(?=xyz)/allusedtext
    xyzpqrabcxyzpqr
    xyzpqrabcxyzpqr\=aftertext
    
/a\b/
    a.\=allusedtext
    a\=allusedtext  

/abc\Kxyz/
    abcxyz\=allusedtext

/abc(?=xyz(*ACCEPT))/
    abcxyz\=allusedtext

/abc(?=abcde)(?=ab)/allusedtext
    abcabcdefg

# End of testinput14