1##  Quantifiers
2
3xa*			xaaaay		/<xaaaa @ 0>/	star 2+
4xa*			xay		/<xa @ 0>/	star 1
5xa*			xy		/<x @ 0>/	star 0
6xa*y			xaaaay		/<xaaaay @ 0>/	star 2+
7xa*y			xay		/<xay @ 0>/	star 1
8xa*y			xy		/<xy @ 0>/	star 0
9
10xa+			xaaaay		/<xaaaa @ 0>/	plus 2+
11xa+			xay		/<xa @ 0>/	plus 1
12xa+			xy		n		plus 0
13xa+y			xaaaay		/<xaaaay @ 0>/	plus 2+
14xa+y			xay		/<xay @ 0>/	plus 1
15xa+y			xy		n		plus 0
16
17xa?			xaaaay		/<xa @ 0>/	ques 2+
18xa?			xay		/<xa @ 0>/	ques 1
19xa?			xy		/<x @ 0>/	ques 0
20xa?y			xaaaay		n		ques 2+
21xa?y			xay		/<xay @ 0>/	ques 1
22xa?y			xy		/<xy @ 0>/	ques 0
23
24xa*!			xaaaay		/<xaaaa @ 0>/	star greedy 2+
25xa*!			xay		/<xa @ 0>/	star greedy 1
26xa*!			xy		/<x @ 0>/	star greedy 0
27xa*!y			xaaaay		/<xaaaay @ 0>/	star greedy 2+
28xa*!y			xay		/<xay @ 0>/	star greedy 1
29xa*!y			xy		/<xy @ 0>/	star greedy 0
30
31xa+!			xaaaay		/<xaaaa @ 0>/	plus greedy 2+
32xa+!			xay		/<xa @ 0>/	plus greedy 1
33xa+!			xy		n		plus greedy 0
34xa+!y			xaaaay		/<xaaaay @ 0>/	plus greedy 2+
35xa+!y			xay		/<xay @ 0>/	plus greedy 1
36xa+!y			xy		n		plus greedy 0
37
38xa?!			xaaaay		/<xa @ 0>/	ques greedy 2+
39xa?!			xay		/<xa @ 0>/	ques greedy 1
40xa?!			xy		/<x @ 0>/	ques greedy 0
41xa?!y			xaaaay		n		ques greedy 2+
42xa?!y			xay		/<xay @ 0>/	ques greedy 1
43xa?!y			xy		/<xy @ 0>/	ques greedy 0
44
45xa*:!			xaaaay		/<xaaaa @ 0>/	star :greedy 2+
46xa*:!			xay		/<xa @ 0>/	star :greedy 1
47xa*:!			xy		/<x @ 0>/	star :greedy 0
48xa*:!y			xaaaay		/<xaaaay @ 0>/	star :greedy 2+
49xa*:!y			xay		/<xay @ 0>/	star :greedy 1
50xa*:!y			xy		/<xy @ 0>/	star :greedy 0
51
52xa+:!			xaaaay		/<xaaaa @ 0>/	plus :greedy 2+
53xa+:!			xay		/<xa @ 0>/	plus :greedy 1
54xa+:!			xy		n		plus :greedy 0
55xa+:!y			xaaaay		/<xaaaay @ 0>/	plus :greedy 2+
56xa+:!y			xay		/<xay @ 0>/	plus :greedy 1
57xa+:!y			xy		n		plus :greedy 0
58
59xa?:!			xaaaay		/<xa @ 0>/	ques :greedy 2+
60xa?:!			xay		/<xa @ 0>/	ques :greedy 1
61xa?:!			xy		/<x @ 0>/	ques :greedy 0
62xa?:!y			xaaaay		n		ques :greedy 2+
63xa?:!y			xay		/<xay @ 0>/	ques :greedy 1
64xa?:!y			xy		/<xy @ 0>/	ques :greedy 0
65
66xa*?			xaaaay		/<x @ 0>/	star eager 2+
67xa*?			xay		/<x @ 0>/	star eager 1
68xa*?			xy		/<x @ 0>/	star eager 0
69xa*?y			xaaaay		/<xaaaay @ 0>/	star eager 2+
70xa*?y			xay		/<xay @ 0>/	star eager 1
71xa*?y			xy		/<xy @ 0>/	star eager 0
72
73xa+?			xaaaay		/<xa @ 0>/	plus eager 2+
74xa+?			xay		/<xa @ 0>/	plus eager 1
75xa+?			xy		n		plus eager 0
76xa+?y			xaaaay		/<xaaaay @ 0>/	plus eager 2+
77xa+?y			xay		/<xay @ 0>/	plus eager 1
78xa+?y			xy		n		plus eager 0
79
80xa??			xaaaay		/<x @ 0>/	ques eager 2+
81xa??			xay		/<x @ 0>/	ques eager 1
82xa??			xy		/<x @ 0>/	ques eager 0
83xa??y			xaaaay		n		ques eager 2+
84xa??y			xay		/<xay @ 0>/	ques eager 1
85xa??y			xy		/<xy @ 0>/	ques eager 0
86
87xa*:?			xaaaay		/<x @ 0>/	star :eager 2+
88xa*:?			xay		/<x @ 0>/	star :eager 1
89xa*:?			xy		/<x @ 0>/	star :eager 0
90xa*:?y			xaaaay		/<xaaaay @ 0>/	star :eager 2+
91xa*:?y			xay		/<xay @ 0>/	star :eager 1
92xa*:?y			xy		/<xy @ 0>/	star :eager 0
93
94xa+:?			xaaaay		/<xa @ 0>/	plus :eager 2+
95xa+:?			xay		/<xa @ 0>/	plus :eager 1
96xa+:?			xy		n		plus :eager 0
97xa+:?y			xaaaay		/<xaaaay @ 0>/	plus :eager 2+
98xa+:?y			xay		/<xay @ 0>/	plus :eager 1
99xa+:?y			xy		n		plus :eager 0
100
101xa?:?			xaaaay		/<x @ 0>/	ques :eager 2+
102xa?:?			xay		/<x @ 0>/	ques :eager 1
103xa?:?			xy		/<x @ 0>/	ques :eager 0
104xa?:?y			xaaaay		n		ques :eager 2+
105xa?:?y			xay		/<xay @ 0>/	ques :eager 1
106xa?:?y			xy		/<xy @ 0>/	ques :eager 0
107
108xa*:y			xaaaay		/<xaaaay @ 0>/	star cut 2+
109xa*:y			xay		/<xay @ 0>/	star cut 1
110xa*:y			xy		/<xy @ 0>/	star cut 0
111xa*:a			xaaaay		n		star cut 2+
112xa*:a			xay		n		star cut 1
113
114xa+:y			xaaaay		/<xaaaay @ 0>/	plus cut 2+
115xa+:y			xay		/<xay @ 0>/	plus cut 1
116xa+:y			xy		n		plus cut 0
117xa+:a			xaaaay		n		plus cut 2+
118xa+:a			xay		n		plus cut 1
119
120xa?:y			xaaaay		n		ques cut 2+
121xa?:y			xay		/<xay @ 0>/	ques cut 1
122xa?:y			xy		/<xy @ 0>/	ques cut 0
123xa?:a			xaaaay		/<xaa @ 0>	ques cut 2+
124xa?:a			xay		n		ques cut 1
125
126:ratchet xa*y			xaaaay		/<xaaaay @ 0>/	star ratchet 2+
127:ratchet xa*y			xay		/<xay @ 0>/	star ratchet 1
128:ratchet xa*y			xy		/<xy @ 0>/	star ratchet 0
129:ratchet xa*a			xaaaay		n		star ratchet 2+
130:ratchet xa*a			xay		n		star ratchet 1
131
132:ratchet xa+y			xaaaay		/<xaaaay @ 0>/	plus ratchet 2+
133:ratchet xa+y			xay		/<xay @ 0>/	plus ratchet 1
134:ratchet xa+y			xy		n		plus ratchet 0
135:ratchet xa+a			xaaaay		n		plus ratchet 2+
136:ratchet xa+a			xay		n		plus ratchet 1
137
138:ratchet xa?y			xaaaay		n		ques ratchet 2+
139:ratchet xa?y			xay		/<xay @ 0>/	ques ratchet 1
140:ratchet xa?y			xy		/<xy @ 0>/	ques ratchet 0
141:ratchet xa?a			xaaaay		/<xaa @ 0>	ques ratchet 2+
142:ratchet xa?a			xay		n		ques ratchet 1
143
144:ratchet xa*!y			xaaaay		/<xaaaay @ 0>/	star ratchet greedy 2+
145:ratchet xa*!y			xay		/<xay @ 0>/	star ratchet greedy 1
146:ratchet xa*!y			xy		/<xy @ 0>/	star ratchet greedy 0
147:ratchet xa*!a			xaaaay		/<xaaaa @ 0>/	star ratchet greedy 2+
148:ratchet xa*!a			xay		/<xa @ 0>/	star ratchet greedy 1
149
150:ratchet xa+!y			xaaaay		/<xaaaay @ 0>/	plus ratchet greedy 2+
151:ratchet xa+!y			xay		/<xay @ 0>/	plus ratchet greedy 1
152:ratchet xa+!y			xy		n		plus ratchet greedy 0
153:ratchet xa+!a			xaaaay		/<xaaaa @ 0>/	plus ratchet greedy 2+
154:ratchet xa+!a			xay		n		plus ratchet greedy 1
155
156:ratchet xa?!y			xaaaay		n		ques ratchet greedy 2+
157:ratchet xa?!y			xay		/<xay @ 0>/	ques ratchet greedy 1
158:ratchet xa?!y			xy		/<xy @ 0>/	ques ratchet greedy 0
159:ratchet xa?!a			xaaaay		/<xaa @ 0>	ques ratchet greedy 2+
160:ratchet xa?!a			xay		/<xa @ 0>	ques ratchet greedy 1
161
162
163## Quantifier closure
164.**{2}			a			n	only one character
165.**{2}			ab			y	two characters
166a**{2}			foobar		n	only one "a" character
167a**{2}			baabaa		y	two "a" characters
168a**{0..4}		bbbbbbb		y	no "a" characters
169a**{2..4}		bababab		n	not two consecutive "a" characters
170a**{2..4}		baabbbb		y	two "a" characters
171a**{2..4}		baaabbb		y	three "a" characters
172a**{2..4}		baaaabb		y	four "a" characters
173a**{2..4}		baaaaaa		y	four "a" characters
174a**{2..*}		baaaaaa		y	six "a" characters
175a**?{2..*}		baaaaaa		y	two "a" characters (non-greedy)
176a**:?{2..*}		baaaaaa		y	two "a" characters (non-greedy)
177a**!{2..*}		baaaaaa		y	six "a" characters (explicit greed)
178a**:!{2..*}		baaaaaa		y	six "a" characters (explicit greed)
179a**?{2..4}		baaabbb		y	two "a" characters (non-greedy)
180a**:?{2..4}		baaabbb		y	two "a" characters (non-greedy)
181a**!{2..4}		baaabbb		y	three "a" characters (explicit greed)
182a**:!{2..4}		baaabbb		y	three "a" characters (explicit greed)
183
184## Quantifier bare range
185.**2			a			n	only one character
186.**2			ab			y	two characters
187a**2			foobar		n	only one "a" character
188a**2			baabaa		y	two "a" characters
189a**0..4			bbbbbbb		y	no "a" characters
190a**2..4			bababab		n	not two consecutive "a" characters
191a**2..4			baabbbb		y	two "a" characters
192a**2..4			baaabbb		y	three "a" characters
193a**2..4			baaaabb		y	four "a" characters
194a**2..4			baaaaaa		y	four "a" characters
195a**2..*			baaaaaa		y	six "a" characters
196a**?2..*		baaaaaa		y	two "a" characters (non-greedy)
197a**:?2..*		baaaaaa		y	two "a" characters (non-greedy)
198a**!2..*		baaaaaa		y	six "a" characters (explicit greed)
199a**:!2..*		baaaaaa		y	six "a" characters (explicit greed)
200a**?2..4		baaabbb		y	two "a" characters (non-greedy)
201a**:?2..4		baaabbb		y	two "a" characters (non-greedy)
202a**!2..4		baaabbb		y	three "a" characters (explicit greed)
203a**:!2..4		baaabbb		y	three "a" characters (explicit greed)
204
205^\w+ ** ','$		foo,bar,baz	y	** with a term
206^\w+ **? ',' ....$	foo,bar,baz	y	**? with a term
207^\w+ **[','\s*]$	foo, bar, baz	y	** with term + ws
208:sigspace ^\w+ ** ',' $	foo, bar ,baz	y	** under :sigspace
209:sigspace ^\w+**',' $	foo, bar ,baz	n	** under :sigspace w/o ws
210:sigspace ^\w+**',' $	foo,bar,baz	y	** under :sigspace w/o ws
211