js-dev-tool 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/basic-types.d.ts +279 -0
- package/common/index.d.ts +43 -0
- package/common/index.js +101 -0
- package/extras/tiny-progress.d.ts +14 -0
- package/extras/tiny-progress.js +74 -0
- package/index.d.ts +27 -0
- package/index.js +15 -0
- package/lib/unzip.min.js +812 -0
- package/lib/zip.min.js +1036 -0
- package/lib/zlibjs.d.ts +34 -0
- package/package.json +51 -0
- package/progress/index.d.ts +92 -0
- package/progress/index.js +305 -0
- package/progress/progress-extras.js +90 -0
- package/progress/rnd-spinner.js +55 -0
- package/progress/spinners.d.ts +74 -0
- package/progress/spinners.json +805 -0
- package/progress/test.js +94 -0
- package/regex.d.ts +154 -0
- package/scripts/publish-version.json +3 -0
- package/scripts/unzip.js +30 -0
- package/scripts/zip.js +138 -0
- package/tool-lib/cjbm.js +239 -0
- package/tool-lib/cjmb-regex-latest.svg +366 -0
- package/tool-lib/cjmb-regex.svg +90 -0
- package/tool-lib/cmt-trick.js +125 -0
- package/tool-lib/ps.js +158 -0
- package/tool-lib/rws.js +181 -0
- package/tool-lib/tools.d.ts +245 -0
- package/tool-lib/zip-task.js +34 -0
- package/tools.d.ts +7 -0
- package/tools.js +450 -0
- package/tsconfig.json +25 -0
- package/utils.d.ts +194 -0
- package/utils.js +643 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" version="1.1" width="2599.072265625" height="646.5">
|
|
3
|
+
<defs>
|
|
4
|
+
<style type="text/css" class="svg-styles">svg {
|
|
5
|
+
background-color: #fff;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.root text,
|
|
9
|
+
.root tspan {
|
|
10
|
+
font: 12px Arial;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.root path {
|
|
14
|
+
fill-opacity: 0;
|
|
15
|
+
stroke-width: 2px;
|
|
16
|
+
stroke: #000;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.root circle {
|
|
20
|
+
fill: #6b6659;
|
|
21
|
+
stroke-width: 2px;
|
|
22
|
+
stroke: #000;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.anchor text, .any-character text {
|
|
26
|
+
fill: #fff;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.anchor rect, .any-character rect {
|
|
30
|
+
fill: #6b6659;
|
|
31
|
+
rx: 8;
|
|
32
|
+
ry: 8;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.escape text, .charset-escape text, .literal text {
|
|
36
|
+
fill: #000;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.escape rect, .charset-escape rect {
|
|
40
|
+
fill: #bada55;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.literal rect {
|
|
44
|
+
fill: #dae9e5;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.charset .charset-box {
|
|
48
|
+
fill: #e1e1d7;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.subexp .subexp-label tspan,
|
|
52
|
+
.charset .charset-label tspan,
|
|
53
|
+
.match-fragment .repeat-label tspan {
|
|
54
|
+
font-size: 10px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.repeat-label {
|
|
58
|
+
cursor: help;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.subexp .subexp-label tspan,
|
|
62
|
+
.charset .charset-label tspan {
|
|
63
|
+
dominant-baseline: text-after-edge;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.subexp .subexp-box {
|
|
67
|
+
stroke: #908c83;
|
|
68
|
+
stroke-dasharray: 6, 2;
|
|
69
|
+
stroke-width: 1px;
|
|
70
|
+
fill-opacity: 0.45;
|
|
71
|
+
fill: rgba(227, 220, 87, 0.15);
|
|
72
|
+
rx: 10;
|
|
73
|
+
ry: 10;
|
|
74
|
+
transition: fill 700ms, filter 200ms;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:root { --group1-color: rgb(117, 140, 108); --group2-color: rgb(93, 113, 55); --group3-color: rgb(132, 245, 217); --group4-color: rgb(50, 175, 61); --group5-color: rgb(18, 101, 222); --group6-color: rgb(167, 27, 189); --group7-color: rgb(50, 211, 128); --group8-color: rgb(244, 238, 251); --group9-color: rgb(225, 128, 139); --group10-color: rgb(240, 235, 243); --group11-color: rgb(238, 8, 13); --group12-color: rgb(241, 43, 37); --group13-color: rgb(13, 231, 60); --group14-color: rgb(2, 162, 58); --group15-color: rgb(46, 37, 71); --group16-color: rgb(177, 47, 80); --group17-color: rgb(151, 183, 208); --group18-color: rgb(56, 116, 178); --group19-color: rgb(149, 253, 38); --group20-color: rgb(166, 248, 17); --group21-color: rgb(218, 197, 57); --group22-color: rgb(23, 162, 215); --group23-color: rgb(2, 112, 128); --group24-color: rgb(86, 241, 80); --group25-color: rgb(103, 139, 211); --group26-color: rgb(196, 196, 24); --group27-color: rgb(127, 165, 169); --group28-color: rgb(145, 82, 36); --group29-color: rgb(76, 226, 144); --group30-color: rgb(154, 5, 59); --group31-color: rgb(119, 24, 153); --group32-color: rgb(73, 58, 112); --group33-color: rgb(81, 178, 120); --group34-color: rgb(60, 216, 2); --group35-color: rgb(174, 252, 106); --group36-color: rgb(139, 9, 233); --group37-color: rgb(107, 137, 242); --group38-color: rgb(37, 198, 238); --group39-color: rgb(232, 28, 182); --group40-color: rgb(215, 187, 22); --group41-color: rgb(46, 91, 164); --group42-color: rgb(94, 197, 118); --group43-color: rgb(73, 211, 201); --group44-color: rgb(224, 10, 139); --group45-color: rgb(127, 241, 58); --group46-color: rgb(132, 247, 97); --group47-color: rgb(210, 112, 221); --group48-color: rgb(241, 129, 1); --group49-color: rgb(52, 74, 106); --group50-color: rgb(76, 132, 49); }
|
|
78
|
+
|
|
79
|
+
.group1 {
|
|
80
|
+
fill: var(--group1-color) !important;
|
|
81
|
+
background: var(--group1-color) !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.group2 {
|
|
85
|
+
fill: var(--group2-color) !important;
|
|
86
|
+
background: var(--group2-color) !important;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.group3 {
|
|
90
|
+
fill: var(--group3-color) !important;
|
|
91
|
+
background: var(--group3-color) !important;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.group4 {
|
|
95
|
+
fill: var(--group4-color) !important;
|
|
96
|
+
background: var(--group4-color) !important;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.group5 {
|
|
100
|
+
fill: var(--group5-color) !important;
|
|
101
|
+
background: var(--group5-color) !important;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.group6 {
|
|
105
|
+
fill: var(--group6-color) !important;
|
|
106
|
+
background: var(--group6-color) !important;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.group7 {
|
|
110
|
+
fill: var(--group7-color) !important;
|
|
111
|
+
background: var(--group7-color) !important;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.group8 {
|
|
115
|
+
fill: var(--group8-color) !important;
|
|
116
|
+
background: var(--group8-color) !important;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.group9 {
|
|
120
|
+
fill: var(--group9-color) !important;
|
|
121
|
+
background: var(--group9-color) !important;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.group10 {
|
|
125
|
+
fill: var(--group10-color) !important;
|
|
126
|
+
background: var(--group10-color) !important;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.group11 {
|
|
130
|
+
fill: var(--group11-color) !important;
|
|
131
|
+
background: var(--group11-color) !important;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.group12 {
|
|
135
|
+
fill: var(--group12-color) !important;
|
|
136
|
+
background: var(--group12-color) !important;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.group13 {
|
|
140
|
+
fill: var(--group13-color) !important;
|
|
141
|
+
background: var(--group13-color) !important;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.group14 {
|
|
145
|
+
fill: var(--group14-color) !important;
|
|
146
|
+
background: var(--group14-color) !important;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.group15 {
|
|
150
|
+
fill: var(--group15-color) !important;
|
|
151
|
+
background: var(--group15-color) !important;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.group16 {
|
|
155
|
+
fill: var(--group16-color) !important;
|
|
156
|
+
background: var(--group16-color) !important;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.group17 {
|
|
160
|
+
fill: var(--group17-color) !important;
|
|
161
|
+
background: var(--group17-color) !important;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.group18 {
|
|
165
|
+
fill: var(--group18-color) !important;
|
|
166
|
+
background: var(--group18-color) !important;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.group19 {
|
|
170
|
+
fill: var(--group19-color) !important;
|
|
171
|
+
background: var(--group19-color) !important;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.group20 {
|
|
175
|
+
fill: var(--group20-color) !important;
|
|
176
|
+
background: var(--group20-color) !important;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.group21 {
|
|
180
|
+
fill: var(--group21-color) !important;
|
|
181
|
+
background: var(--group21-color) !important;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.group22 {
|
|
185
|
+
fill: var(--group22-color) !important;
|
|
186
|
+
background: var(--group22-color) !important;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.group23 {
|
|
190
|
+
fill: var(--group23-color) !important;
|
|
191
|
+
background: var(--group23-color) !important;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.group24 {
|
|
195
|
+
fill: var(--group24-color) !important;
|
|
196
|
+
background: var(--group24-color) !important;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.group25 {
|
|
200
|
+
fill: var(--group25-color) !important;
|
|
201
|
+
background: var(--group25-color) !important;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.group26 {
|
|
205
|
+
fill: var(--group26-color) !important;
|
|
206
|
+
background: var(--group26-color) !important;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.group27 {
|
|
210
|
+
fill: var(--group27-color) !important;
|
|
211
|
+
background: var(--group27-color) !important;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.group28 {
|
|
215
|
+
fill: var(--group28-color) !important;
|
|
216
|
+
background: var(--group28-color) !important;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.group29 {
|
|
220
|
+
fill: var(--group29-color) !important;
|
|
221
|
+
background: var(--group29-color) !important;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.group30 {
|
|
225
|
+
fill: var(--group30-color) !important;
|
|
226
|
+
background: var(--group30-color) !important;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.group31 {
|
|
230
|
+
fill: var(--group31-color) !important;
|
|
231
|
+
background: var(--group31-color) !important;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.group32 {
|
|
235
|
+
fill: var(--group32-color) !important;
|
|
236
|
+
background: var(--group32-color) !important;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.group33 {
|
|
240
|
+
fill: var(--group33-color) !important;
|
|
241
|
+
background: var(--group33-color) !important;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.group34 {
|
|
245
|
+
fill: var(--group34-color) !important;
|
|
246
|
+
background: var(--group34-color) !important;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.group35 {
|
|
250
|
+
fill: var(--group35-color) !important;
|
|
251
|
+
background: var(--group35-color) !important;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.group36 {
|
|
255
|
+
fill: var(--group36-color) !important;
|
|
256
|
+
background: var(--group36-color) !important;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.group37 {
|
|
260
|
+
fill: var(--group37-color) !important;
|
|
261
|
+
background: var(--group37-color) !important;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.group38 {
|
|
265
|
+
fill: var(--group38-color) !important;
|
|
266
|
+
background: var(--group38-color) !important;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.group39 {
|
|
270
|
+
fill: var(--group39-color) !important;
|
|
271
|
+
background: var(--group39-color) !important;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.group40 {
|
|
275
|
+
fill: var(--group40-color) !important;
|
|
276
|
+
background: var(--group40-color) !important;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.group41 {
|
|
280
|
+
fill: var(--group41-color) !important;
|
|
281
|
+
background: var(--group41-color) !important;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.group42 {
|
|
285
|
+
fill: var(--group42-color) !important;
|
|
286
|
+
background: var(--group42-color) !important;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.group43 {
|
|
290
|
+
fill: var(--group43-color) !important;
|
|
291
|
+
background: var(--group43-color) !important;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.group44 {
|
|
295
|
+
fill: var(--group44-color) !important;
|
|
296
|
+
background: var(--group44-color) !important;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.group45 {
|
|
300
|
+
fill: var(--group45-color) !important;
|
|
301
|
+
background: var(--group45-color) !important;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.group46 {
|
|
305
|
+
fill: var(--group46-color) !important;
|
|
306
|
+
background: var(--group46-color) !important;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.group47 {
|
|
310
|
+
fill: var(--group47-color) !important;
|
|
311
|
+
background: var(--group47-color) !important;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.group48 {
|
|
315
|
+
fill: var(--group48-color) !important;
|
|
316
|
+
background: var(--group48-color) !important;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.group49 {
|
|
320
|
+
fill: var(--group49-color) !important;
|
|
321
|
+
background: var(--group49-color) !important;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.group50 {
|
|
325
|
+
fill: var(--group50-color) !important;
|
|
326
|
+
background: var(--group50-color) !important;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.subexp .subexp-box.non-capture {
|
|
330
|
+
stroke-dasharray: none;
|
|
331
|
+
stroke-width: 0.15px;
|
|
332
|
+
fill: transparent;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.named-group {
|
|
336
|
+
fill: red !important;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.on-hover {
|
|
340
|
+
fill-opacity: 1 !important;
|
|
341
|
+
filter: blur(1.5px);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
[class*=group]:not([class=regex-group-colors]):hover {
|
|
345
|
+
fill-opacity: 0.65;
|
|
346
|
+
filter: blur(2px);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.quote {
|
|
350
|
+
fill: #908c83;
|
|
351
|
+
}
|
|
352
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9zYXNzL3N2Zy5zY3NzIiwid2VicGFjazovLy4vc3JjL3Nhc3MvX2Jhc2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLHNCQ1dNO0FEWlI7O0FBSUE7O0VBRUUsZ0JBQUE7QUFERjs7QUFJQTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFlDRE07QURBUjs7QUFJQTtFQUNFLGFDWks7RURhTCxpQkFBQTtFQUNBLFlDUE07QURNUjs7QUFJQTtFQUNFLFVDVk07QURTUjs7QUFJQTtFQUNFLGFDdEJLO0VEdUJMLEtBQUE7RUFDQSxLQUFBO0FBREY7O0FBSUE7RUFDRSxVQ3JCTTtBRG9CUjs7QUFJQTtFQUNFLGFDbkNNO0FEa0NSOztBQUlBO0VBQ0UsYUMvQks7QUQ4QlA7O0FBSUE7RUFDRSxhQ3JDSTtBRG9DTjs7QUFJQTs7O0VBR0UsZUFBQTtBQURGOztBQUlBO0VBQ0ksWUFBQTtBQURKOztBQUlBOztFQUdFLGtDQUFBO0FBRkY7O0FBU0E7RUFDRSxlQzlEVztFRCtEWCxzQkFBQTtFQUdBLGlCQUFBO0VBQ0Esa0JBQUE7RUFFQSw4QkFBQTtFQUNBLE1BQUE7RUFDQSxNQUFBO0VBRUEsb0NBQUE7QUFWRjs7QUE0Qkk7RUFFSSxrQ0FBQTtFQUFBLGdDQUFBO0VBQUEsa0NBQUE7RUFBQSxnQ0FBQTtFQUFBLGlDQUFBO0VBQUEsaUNBQUE7RUFBQSxpQ0FBQTtFQUFBLGtDQUFBO0VBQUEsa0NBQUE7RUFBQSxtQ0FBQTtFQUFBLGdDQUFBO0VBQUEsaUNBQUE7RUFBQSxpQ0FBQTtFQUFBLGdDQUFBO0VBQUEsZ0NBQUE7RUFBQSxpQ0FBQTtFQUFBLG1DQUFBO0VBQUEsa0NBQUE7RUFBQSxrQ0FBQTtFQUFBLGtDQUFBO0VBQUEsa0NBQUE7RUFBQSxrQ0FBQTtFQUFBLGlDQUFBO0VBQUEsaUNBQUE7RUFBQSxtQ0FBQTtFQUFBLGtDQUFBO0VBQUEsbUNBQUE7RUFBQSxpQ0FBQTtFQUFBLGtDQUFBO0VBQUEsZ0NBQUE7RUFBQSxrQ0FBQTtFQUFBLGlDQUFBO0VBQUEsa0NBQUE7RUFBQSxnQ0FBQTtFQUFBLG1DQUFBO0VBQUEsaUNBQUE7RUFBQSxtQ0FBQTtFQUFBLGtDQUFBO0VBQUEsa0NBQUE7RUFBQSxrQ0FBQTtFQUFBLGlDQUFBO0VBQUEsa0NBQUE7RUFBQSxrQ0FBQTtFQUFBLGtDQUFBO0VBQUEsa0NBQUE7RUFBQSxrQ0FBQTtFQUFBLG1DQUFBO0VBQUEsaUNBQUE7RUFBQSxpQ0FBQTtFQUFBLGlDQUFBO0FBdUJSOztBQWxCTTtFQUNFLG9DQUFBO0VBQ0EsMENBQUE7QUFxQlI7O0FBdkJNO0VBQ0Usb0NBQUE7RUFDQSwwQ0FBQTtBQTBCUjs7QUE1Qk07RUFDRSxvQ0FBQTtFQUNBLDBDQUFBO0FBK0JSOztBQWpDTTtFQUNFLG9DQUFBO0VBQ0EsMENBQUE7QUFvQ1I7O0FBdENNO0VBQ0Usb0NBQUE7RUFDQSwwQ0FBQTtBQXlDUjs7QUEzQ007RUFDRSxvQ0FBQTtFQUNBLDBDQUFBO0FBOENSOztBQWhETTtFQUNFLG9DQUFBO0VBQ0EsMENBQUE7QUFtRFI7O0FBckRNO0VBQ0Usb0NBQUE7RUFDQSwwQ0FBQTtBQXdEUjs7QUExRE07RUFDRSxvQ0FBQTtFQUNBLDBDQUFBO0FBNkRSOztBQS9ETTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUFrRVI7O0FBcEVNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQXVFUjs7QUF6RU07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBNEVSOztBQTlFTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUFpRlI7O0FBbkZNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQXNGUjs7QUF4Rk07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBMkZSOztBQTdGTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUFnR1I7O0FBbEdNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQXFHUjs7QUF2R007RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBMEdSOztBQTVHTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUErR1I7O0FBakhNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQW9IUjs7QUF0SE07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBeUhSOztBQTNITTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUE4SFI7O0FBaElNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQW1JUjs7QUFySU07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBd0lSOztBQTFJTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUE2SVI7O0FBL0lNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQWtKUjs7QUFwSk07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBdUpSOztBQXpKTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUE0SlI7O0FBOUpNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQWlLUjs7QUFuS007RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBc0tSOztBQXhLTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUEyS1I7O0FBN0tNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQWdMUjs7QUFsTE07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBcUxSOztBQXZMTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUEwTFI7O0FBNUxNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQStMUjs7QUFqTU07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBb01SOztBQXRNTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUF5TVI7O0FBM01NO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQThNUjs7QUFoTk07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBbU5SOztBQXJOTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUF3TlI7O0FBMU5NO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQTZOUjs7QUEvTk07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBa09SOztBQXBPTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUF1T1I7O0FBek9NO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQTRPUjs7QUE5T007RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBaVBSOztBQW5QTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUFzUFI7O0FBeFBNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQTJQUjs7QUE3UE07RUFDRSxxQ0FBQTtFQUNBLDJDQUFBO0FBZ1FSOztBQWxRTTtFQUNFLHFDQUFBO0VBQ0EsMkNBQUE7QUFxUVI7O0FBdlFNO0VBQ0UscUNBQUE7RUFDQSwyQ0FBQTtBQTBRUjs7QUEvUEE7RUFDRSxzQkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QUFrUUY7O0FBaFFBO0VBQ0Usb0JBQUE7QUFtUUY7O0FBaFFBO0VBQ0UsMEJBQUE7RUFDQSxtQkFBQTtBQW1RRjs7QUFoUUE7RUFDSSxrQkFBQTtFQUNBLGlCQUFBO0FBbVFKOztBQWhRQTtFQUNFLGFDbklXO0FEc1liIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnYmFzZSc7XG5cbnN2ZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbn1cblxuLnJvb3QgdGV4dCxcbi5yb290IHRzcGFuIHtcbiAgZm9udDogMTJweCBBcmlhbDtcbn1cblxuLnJvb3QgcGF0aCB7XG4gIGZpbGwtb3BhY2l0eTogMDtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG4gIHN0cm9rZTogJGJsYWNrO1xufVxuXG4ucm9vdCBjaXJjbGUge1xuICBmaWxsOiAkZ3JheTtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG4gIHN0cm9rZTogJGJsYWNrO1xufVxuXG4uYW5jaG9yIHRleHQsIC5hbnktY2hhcmFjdGVyIHRleHQge1xuICBmaWxsOiAkd2hpdGU7XG59XG5cbi5hbmNob3IgcmVjdCwgLmFueS1jaGFyYWN0ZXIgcmVjdCB7XG4gIGZpbGw6ICRncmF5O1xuICByeDogODtcbiAgcnk6IDg7XG59XG5cbi5lc2NhcGUgdGV4dCwgLmNoYXJzZXQtZXNjYXBlIHRleHQsIC5saXRlcmFsIHRleHQge1xuICBmaWxsOiAkYmxhY2s7XG59XG5cbi5lc2NhcGUgcmVjdCwgLmNoYXJzZXQtZXNjYXBlIHJlY3Qge1xuICBmaWxsOiAkZ3JlZW47XG59XG5cbi5saXRlcmFsIHJlY3Qge1xuICBmaWxsOiAkYmx1ZTtcbn1cblxuLmNoYXJzZXQgLmNoYXJzZXQtYm94IHtcbiAgZmlsbDogJHRhbjtcbn1cblxuLnN1YmV4cCAuc3ViZXhwLWxhYmVsIHRzcGFuLFxuLmNoYXJzZXQgLmNoYXJzZXQtbGFiZWwgdHNwYW4sXG4ubWF0Y2gtZnJhZ21lbnQgLnJlcGVhdC1sYWJlbCB0c3BhbiB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnJlcGVhdC1sYWJlbCB7XG4gICAgY3Vyc29yOiBoZWxwO1xufVxuXG4uc3ViZXhwIC5zdWJleHAtbGFiZWwgdHNwYW4sXG4uY2hhcnNldCAuY2hhcnNldC1sYWJlbCB0c3BhbiB7XG4gIC8vIG1vcmUgZGV0YWlscyBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1NWRy9BdHRyaWJ1dGUvZG9taW5hbnQtYmFzZWxpbmVcbiAgZG9taW5hbnQtYmFzZWxpbmU6IHRleHQtYWZ0ZXItZWRnZTtcbn1cblxuQGZ1bmN0aW9uIHJuZFJnYmEoJGFscGhhOiAxKSB7XG4gIEByZXR1cm4gcmdiYShyYW5kb20oMjU1KSwgcmFuZG9tKDI1NSksIHJhbmRvbSgyNTUpLCAkYWxwaGEpO1xufVxuXG4uc3ViZXhwIC5zdWJleHAtYm94IHtcbiAgc3Ryb2tlOiAkbGlnaHQtZ3JheTtcbiAgc3Ryb2tlLWRhc2hhcnJheTogNiwyO1xuICAvLyBzdHJva2Utd2lkdGg6IDJweDtcbiAgLy8gZmlsbC1vcGFjaXR5OiAwO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgZmlsbC1vcGFjaXR5OiAwLjQ1O1xuICAvLyBERVZOT1RFOiAyMDIzLTExLTMwIC0gbmVlZCBub25lIGNhcHR1cmUgZ3JvdXAgYm94IGRlZmFsdCBjb2xvclxuICBmaWxsOiByZ2IoMjI3IDIyMCA4NyAvIDE1JSk7XG4gIHJ4OiAxMDtcbiAgcnk6IDEwO1xuXG4gIHRyYW5zaXRpb246IGZpbGwgNzAwbXMsIGZpbHRlciAyMDBtcztcbn1cblxuLy8gREVWTk9URTogMjAyMy8xMS8zMCAtIOS7peS4i+OBruOCiOOBhuOBq+OAgWh0bWwgZW50aXR5IOOBq+WkieaPm+OBleOCjOOBpuOBl+OBvuOBhi4uLlxuLy8gZGl2W2NsYXNzXiYjeDNEO2dyb3VwXSB7XG4vLyAgIHdpZHRoOiAyMHB4O1xuLy8gICBoZWlnaHQ6IDIwcHg7XG4vLyB9XG4vLyBbY29udmVydCB0byBodG1sIGVudGl0eV1cbi8vIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cInN2Zy1zdHlsZXNcIj57e3N2Z19zdHlsZXN9fTwvc3R5bGU+XG4vLyBbZGlzYWJsZSBodG1sIGVudGl0eSBjb252ZXJ0XSB0aXA6IHVzZSB0cmlwbGUgY3VybHlcbi8vIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cInN2Zy1zdHlsZXNcIj57e3tzdmdfc3R5bGVzfX19PC9zdHlsZT5cblxuJEdST1VQX0NPVU5UOiA1MDtcbi8vIFRJUDogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc5MjY2MDUvaGFuZGxlYmFycy10cmlwbGUtc3Rhc2gtdG8tYXZvaWQtZXNjYXBpbmctaHRtbC1lbnRpdGllc1xuLy8gICAgICBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vZ3VpZGUvZXhwcmVzc2lvbnMuaHRtbCNsaXRlcmFsLXNlZ21lbnRzXG5AbWl4aW4gcmVnZXgtZ3JvdXAtY29sb3JzKCRpc0RlZjogZmFsc2UpIHtcbiAgQGlmICRpc0RlZiA9PSB0cnVlIHtcbiAgICA6cm9vdCB7XG4gICAgICBAZm9yICRpbmRleCBmcm9tIDEgdGhyb3VnaCAkR1JPVVBfQ09VTlQge1xuICAgICAgICAtLWdyb3VwI3skaW5kZXh9LWNvbG9yOiAje3JuZFJnYmEoKX07XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAZm9yICRpbmRleCBmcm9tIDEgdGhyb3VnaCAkR1JPVVBfQ09VTlQge1xuICAgICAgLmdyb3VwI3skaW5kZXh9IHtcbiAgICAgICAgZmlsbDogdmFyKC0tZ3JvdXAjeyRpbmRleH0tY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdyb3VwI3skaW5kZXh9LWNvbG9yKSAhaW1wb3J0YW50O1xuICAgICAgICAvLyBmaWxsOiAje3JuZFJnYmEoKX0gIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVnZXgtZ3JvdXAtY29sb3JzKHRydWUpO1xuQGluY2x1ZGUgcmVnZXgtZ3JvdXAtY29sb3JzKCk7XG5cbi8vIHNlbGVjdG9yOiAoMCwgMywgMClcbi5zdWJleHAgLnN1YmV4cC1ib3gubm9uLWNhcHR1cmUge1xuICBzdHJva2UtZGFzaGFycmF5OiBub25lO1xuICBzdHJva2Utd2lkdGg6IDAuMTVweDtcbiAgZmlsbDogdHJhbnNwYXJlbnQ7XG59XG4ubmFtZWQtZ3JvdXAge1xuICBmaWxsOiByZWQhaW1wb3J0YW50O1xufVxuXG4ub24taG92ZXIge1xuICBmaWxsLW9wYWNpdHk6IDEhaW1wb3J0YW50O1xuICBmaWx0ZXI6IGJsdXIoMS41cHgpO1xufVxuXG5bY2xhc3MqPWdyb3VwXTpub3QoW2NsYXNzPVwicmVnZXgtZ3JvdXAtY29sb3JzXCJdKTpob3ZlciB7XG4gICAgZmlsbC1vcGFjaXR5OiAwLjY1O1xuICAgIGZpbHRlcjogYmx1cigycHgpO1xufVxuXG4ucXVvdGUge1xuICBmaWxsOiAkbGlnaHQtZ3JheTtcbn1cbiIsIkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2NvcmUvX2JvdXJib24uc2Nzcyc7XG4vLyBAaW1wb3J0ICd+Ym91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MnO1xuXG4kZ3JlZW46ICNiYWRhNTU7XG4kZGFyay1ncmVlbjogc2hhZGUoJGdyZWVuLCAyNSUpO1xuJGxpZ2h0LWdyZWVuOiB0aW50KCRncmVlbiwgMjUlKTtcbiRncmF5OiAjNmI2NjU5O1xuJHRpbi1ncmF5OiAjYTFhMWExOyAvLyM5Nzk1OTA7XG4kbGlnaHQtZ3JheTogdGludCgkZ3JheSwgMjUlKTtcbiR0YW46ICNlMWUxZDc7IC8vICNjYmNiYmE7XG4kcmVkOiAjYjMxNTFhO1xuJGJsdWU6ICNkYWU5ZTU7XG4keWVsbG93OiAjZjhjYTAwO1xuJGJsYWNrOiAjMDAwO1xuJHdoaXRlOiAjZmZmO1xuXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kYmFzZS1saW5lLWhlaWdodDogMjRweDtcblxuQG1peGluIGJveC1zaGFkb3cge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2hhZG93LCAwIDAgMTBweCAkYmxhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBmdW5jdGlvbiByaHl0aG0oJHNjYWxlLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQHJldHVybiBjYWxjKCRzY2FsZSAqICRiYXNlLWxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbkBtaXhpbiBhZGp1c3QtZm9udC1zaXplLXRvKCR0by1zaXplLCAkbGluZXM6IGF1dG8pIHtcbiAgZm9udC1zaXplOiBjYWxjKCR0by1zaXplIC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcbiAgQGlmICRsaW5lcyA9PSBhdXRvIHtcbiAgICAkbGluZXM6IGNlaWwobWF0aC5kaXYoJHRvLXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xuICAgIC8vICRsaW5lczogY2VpbCgkdG8tc2l6ZSAvICRiYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgbGluZS1oZWlnaHQ6IHJoeXRobSgkbGluZXMsICR0by1zaXplKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */</style>
|
|
353
|
+
</defs>
|
|
354
|
+
<metadata>
|
|
355
|
+
<rdf:rdf>
|
|
356
|
+
<cc:license rdf:about="http://creativecommons.org/licenses/by/3.0/">
|
|
357
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"></cc:permits>
|
|
358
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"></cc:permits>
|
|
359
|
+
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"></cc:requires>
|
|
360
|
+
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"></cc:requires>
|
|
361
|
+
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"></cc:permits>
|
|
362
|
+
</cc:license>
|
|
363
|
+
</rdf:rdf>
|
|
364
|
+
</metadata>
|
|
365
|
+
<desc>Created with Snap</desc><g class="root" transform="matrix(1,0,0,1,15,10)"><g class="regexp match" transform="matrix(1,0,0,1,10,0)"><path d="M0,318.75H20M197.3828125,318.75H242.3828M333.742175,318.75H353.7422M353.7422,318.75H378.7422M453.4375125,318.75H488.4375M2343.0333251953125,318.75H2403.0333"></path><g class="match-fragment comment" transform="matrix(1,0,0,1,0,318.75)"></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,10,275.75)"><rect rx="3" ry="3" data-selection="68,81" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="212.3828125" height="64"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?<!] negative lookbehind</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M21.34375,22H41.3438M62.68755,22H102.6875"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,10)"><g class="label"><rect width="21.34375" height="24" data-selection="72,74" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,31.3438,10)"><path d="M10,12q-10,0 -10,10v2q0,10 10,10h21.34375q10,0 10,-10v-2q0,-10 -10,-10M41.34375,27l5,-5m-5,5l-5,-5"></path><g class="literal" transform="matrix(1,0,0,1,10,0)"><g class="label"><rect width="21.34375" height="24" data-selection="74,76" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,87.6875,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="77,79" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,232.3828,271.25)"><rect rx="3" ry="3" data-selection="81,98" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="111.359375" height="73"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp" transform="matrix(1,0,0,1,10,21)"><path d="M0,26.5c10,0 10,-14.5 20,-14.5 M91.359375,26.5c-10,0 -10,-14.5 -20,-14.5 M0,26.5c10,0 10,14.5 20,14.5 M91.359375,26.5c-10,0 -10,14.5 -20,14.5"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,12h0.0078M51.35155,12H51.359375M0,41h0M51.359375,41H51.359375"></path><g class="match match-fragment literal" transform="matrix(1,0,0,1,0.0078,0)"><g class="label"><rect width="51.34375" height="24" data-selection="84,90" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>import</tspan><tspan class="quote">”</tspan></text></g></g><g class="match match-fragment literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="51.359375" height="24" data-selection="91,97" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>export</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g><g class="match-fragment comment" transform="matrix(1,0,0,1,353.7422,318.75)"></g><g class="match-fragment" transform="matrix(1,0,0,1,363.7422,296.75)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="143,145" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,478.4375,0)"><rect rx="3" ry="3" data-selection="147,527" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="1874.5958251953125" height="615.5"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp" transform="matrix(1,0,0,1,10,21)"><path d="M10,140.5q0,-10 10,-10 M1844.5958251953125,140.5q0,-10 -10,-10 M10,306.5q0,10 10,10 M1844.5958251953125,306.5q0,10 -10,10 M10,503.5q0,10 10,10 M1844.5958251953125,503.5q0,10 -10,10 M0,297.75q10,0 10,-10V140.5 M1854.5958251953125,297.75q-10,0 -10,-10V140.5 M0,297.75q10,0 10,10V503.5 M1854.5958251953125,297.75q-10,0 -10,10V503.5"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,130.5h440.7584M1373.837525,130.5H1814.5958251953125M0,316.5h304.063M1510.5328,316.5H1814.5958251953125M0,513.5h20M1814.595825,513.5H1814.5958251953125"></path><g class="match" transform="matrix(1,0,0,1,440.7584,0)"><path d="M22.265625,130.5H42.2656M175.62495,130.5H228.1211M261.14063125,130.5H377.66110000000003M840.8135,130.5H910.8135"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,118.5)"><g class="label"><rect width="22.265625" height="24" data-selection="153,154" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,32.2656,87.5)"><rect rx="3" ry="3" data-selection="154,165" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="153.35934448242188" height="54"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?!] negative lookahead</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M38.015625,22H63.0156M87.0156,22H112.0156"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,10)"><g class="label"><rect width="38.015625" height="24" data-selection="157,161" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>http</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,48.0156,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="161,162" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>s</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,112.0156,10)"><g class="label"><rect width="21.34375" height="24" data-selection="163,164" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>:</tspan><tspan class="quote">”</tspan></text></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,195.625,67)"><rect rx="3" ry="3" data-selection="165,175" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="103.01171875" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?=] positive lookahead</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,22.4961,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="168,173" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="169,170" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="170,172" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,308.6367,0)"><rect rx="3" ry="3" data-selection="175,252" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="592.1768188476562" height="191"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M204.0928140625,109.5H259.0928"></path><g class="match-fragment subexp" transform="matrix(1,0,0,1,0,15)"><rect rx="3" ry="3" data-selection="183,215" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="224.0928192138672" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'globalName'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M82.04393125,73.5H156.0684"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,73.5q10,0 10,-10v-53.5q0,-10 10,-10h96.068359375q10,0 10,10v53.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="197,207" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,24.0244,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="200,205" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="201,202" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="202,204" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,146.0684,45.5)"><path d="M10,28q-10,0 -10,10v7q0,10 10,10h38.0244140625q10,0 10,-10v-7q0,-10 -10,-10"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="208,212" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="38.0244140625" height="34"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>None of:</tspan></text><g transform="matrix(1,0,0,1,7.8794,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="22.265625" height="24" data-selection="210,211" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,234.0928,0)"><path d="M0,109.5q10,0 10,-10v-89.5q0,-10 10,-10h298.0840148925781q10,0 10,10v89.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="215,247" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="308.0840148925781" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M21.34375,78.5H75.378"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,66.5)"><g class="label"><rect width="21.34375" height="24" data-selection="218,220" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,31.3438,0)"><rect rx="3" ry="3" data-selection="220,246" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="256.7402038574219" height="114"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'globalExt'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M102.0342,57.5H146.0684M172.740275,57.5H197.7402"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,57.5q10,0 10,-10v-37.5q0,-10 10,-10h96.068359375q10,0 10,10v37.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="233,240" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="73"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp" transform="matrix(1,0,0,1,19.0342,21)"><path d="M0,26.5c10,0 10,-14.5 20,-14.5 M68,26.5c-10,0 -10,-14.5 -20,-14.5 M0,26.5c10,0 10,14.5 20,14.5 M68,26.5c-10,0 -10,14.5 -20,14.5"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,12h2M26,12H28M0,41h0M28,41H28"></path><g class="match match-fragment literal" transform="matrix(1,0,0,1,2,0)"><g class="label"><rect width="24" height="24" data-selection="236,237" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>c</tspan><tspan class="quote">”</tspan></text></g></g><g class="match match-fragment literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="28" height="24" data-selection="238,239" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>m</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,146.0684,45.5)"><g class="label"><rect width="26.671875" height="24" data-selection="241,243" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>js</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,182.7402,35.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="243,244" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>x</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,910.8135,118.5)"><g class="label"><rect width="22.265625" height="24" data-selection="252,253" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match" transform="matrix(1,0,0,1,304.063,207)"><path d="M22,109.5H47M121.6953125,109.5H146.6953M168.960925,109.5H188.9609M322.32025,109.5H374.8164M407.83593125,109.5H514.3564M659.4248140625,109.5H714.4248M977.5088000000001,109.5H1037.5088M1059.774425,109.5H1084.7745M1159.4698125,109.5H1184.4698"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,97.5)"><g class="label"><rect width="22" height="24" data-selection="257,259" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>(</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,32,87.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="259,261" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,146.6953,97.5)"><g class="label"><rect width="22.265625" height="24" data-selection="267,268" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,178.9609,66.5)"><rect rx="3" ry="3" data-selection="268,279" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="153.35934448242188" height="54"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?!] negative lookahead</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M38.015625,22H63.0156M87.0156,22H112.0156"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,10)"><g class="label"><rect width="38.015625" height="24" data-selection="271,275" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>http</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,48.0156,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="275,276" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>s</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,112.0156,10)"><g class="label"><rect width="21.34375" height="24" data-selection="277,278" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>:</tspan><tspan class="quote">”</tspan></text></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,342.3203,46)"><rect rx="3" ry="3" data-selection="279,289" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="103.01171875" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?=] positive lookahead</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,22.4961,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="282,287" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="283,284" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="284,286" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,455.332,15)"><rect rx="3" ry="3" data-selection="289,322" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="224.0928192138672" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'dynamicName'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M82.04393125,73.5H156.0684"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,73.5q10,0 10,-10v-53.5q0,-10 10,-10h96.068359375q10,0 10,10v53.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="304,314" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,24.0244,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="307,312" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="308,309" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="309,311" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,146.0684,45.5)"><path d="M10,28q-10,0 -10,10v7q0,10 10,10h38.0244140625q10,0 10,-10v-7q0,-10 -10,-10"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="315,319" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="38.0244140625" height="34"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>None of:</tspan></text><g transform="matrix(1,0,0,1,7.8794,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="22.265625" height="24" data-selection="317,318" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,689.4248,0)"><path d="M0,109.5q10,0 10,-10v-89.5q0,-10 10,-10h298.0840148925781q10,0 10,10v89.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="322,355" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="308.0840148925781" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M21.34375,78.5H75.378"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,66.5)"><g class="label"><rect width="21.34375" height="24" data-selection="325,327" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,31.3438,0)"><rect rx="3" ry="3" data-selection="327,354" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="256.7402038574219" height="114"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'dynamicExt'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M102.0342,57.5H146.0684M172.740275,57.5H197.7402"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,57.5q10,0 10,-10v-37.5q0,-10 10,-10h96.068359375q10,0 10,10v37.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="341,348" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="73"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp" transform="matrix(1,0,0,1,19.0342,21)"><path d="M0,26.5c10,0 10,-14.5 20,-14.5 M68,26.5c-10,0 -10,-14.5 -20,-14.5 M0,26.5c10,0 10,14.5 20,14.5 M68,26.5c-10,0 -10,14.5 -20,14.5"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,12h2M26,12H28M0,41h0M28,41H28"></path><g class="match match-fragment literal" transform="matrix(1,0,0,1,2,0)"><g class="label"><rect width="24" height="24" data-selection="344,345" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>c</tspan><tspan class="quote">”</tspan></text></g></g><g class="match match-fragment literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="28" height="24" data-selection="346,347" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>m</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,146.0684,45.5)"><g class="label"><rect width="26.671875" height="24" data-selection="349,351" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>js</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,182.7402,35.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="351,352" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>x</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,1037.5088,97.5)"><g class="label"><rect width="22.265625" height="24" data-selection="356,357" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,1069.7745,87.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="360,362" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,1184.4698,97.5)"><g class="label"><rect width="22" height="24" data-selection="363,365" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>)</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match" transform="matrix(1,0,0,1,0,383)"><path d="M746.8214,130.5H781.8214M856.5167125,130.5H881.5167M903.782325,130.5H923.7823M1057.14165,130.5H1109.6378M1142.65733125,130.5H1259.1778M1722.3301999999999,130.5H1792.3302"></path><g class="match-fragment subexp" transform="matrix(1,0,0,1,0,26.5)"><rect rx="3" ry="3" data-selection="369,419" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="756.8214111328125" height="175"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M560.1260375976562,83H595.126M669.8213125,83H694.8214"></path><g class="match-fragment subexp" transform="matrix(1,0,0,1,0,0)"><rect rx="3" ry="3" data-selection="372,411" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="570.1260375976562" height="144"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'clause'</tspan></text><g class="regexp" transform="matrix(1,0,0,1,10,21)"><path d="M10,22q0,-10 10,-10 M540.1260375976562,22q0,-10 -10,-10 M10,82q0,10 10,10 M540.1260375976562,82q0,10 -10,10 M0,62q10,0 10,-10V22 M550.1260375976562,62q-10,0 -10,-10V22 M0,62q10,0 10,10V82 M550.1260375976562,62q-10,0 -10,10V82"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,12h213.2095M296.91653125,12H510.12603759765625M0,92h35M510.126025,92H510.12603759765625"></path><g class="match match-fragment" transform="matrix(1,0,0,1,203.2095,0)"><path d="M10,12q-10,0 -10,10v2q0,10 10,10h83.70703125q10,0 10,-10v-2q0,-10 -10,-10"></path><g class="any-character" transform="matrix(1,0,0,1,10,0)"><g class="label"><rect width="83.70703125" height="24" data-selection="382,383"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>any character</tspan></text></g></g></g><g class="match" transform="matrix(1,0,0,1,0,39)"><path d="M233.37505,53H283.3751M358.0704125,53H383.0704M405.086025,53H425.086M463.1104140625,53H488.1104"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,53q10,0 10,-10v-33q0,-10 10,-10h218.3750457763672q10,0 10,10v33q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="386,397" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="228.3750457763672" height="64"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M47.3359375,22H87.3359M162.03121249999998,22H187.0313"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,10)"><path d="M10,12q-10,0 -10,10v2q0,10 10,10h37.3359375q10,0 10,-10v-2q0,-10 -10,-10M57.3359375,27l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,10,0)"><g class="label"><rect width="37.3359375" height="24" data-selection="389,391" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>word</tspan></text></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,72.3359,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="392,394" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,187.0313,10)"><g class="label"><rect width="21.34375" height="24" data-selection="395,396" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>,</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,268.3751,31)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="398,400" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,383.0704,41)"><g class="label"><rect width="22.015625" height="24" data-selection="401,403" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>{</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,415.086,25)"><path d="M10,28q-10,0 -10,10v7q0,10 10,10h38.0244140625q10,0 10,-10v-7q0,-10 -10,-10M58.0244140625,43l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="403,407" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="38.0244140625" height="34"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>None of:</tspan></text><g transform="matrix(1,0,0,1,8.0044,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="22.015625" height="24" data-selection="405,406" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>}</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,488.1104,41)"><g class="label"><rect width="22.015625" height="24" data-selection="408,410" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>}</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,580.126,61)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="411,413" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,694.8214,71)"><g class="label"><rect width="42" height="24" data-selection="414,418" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>from</tspan><tspan class="quote">”</tspan></text></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,766.8214,108.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="419,421" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,881.5167,118.5)"><g class="label"><rect width="22.265625" height="24" data-selection="422,423" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,913.7823,87.5)"><rect rx="3" ry="3" data-selection="423,434" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="153.35934448242188" height="54"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?!] negative lookahead</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M38.015625,22H63.0156M87.0156,22H112.0156"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,10)"><g class="label"><rect width="38.015625" height="24" data-selection="426,430" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>http</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,48.0156,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="430,431" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>s</tspan><tspan class="quote">”</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,112.0156,10)"><g class="label"><rect width="21.34375" height="24" data-selection="432,433" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>:</tspan><tspan class="quote">”</tspan></text></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,1077.1417,67)"><rect rx="3" ry="3" data-selection="434,444" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="103.01171875" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?=] positive lookahead</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,22.4961,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="437,442" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="438,439" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="439,441" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,1190.1534,0)"><rect rx="3" ry="3" data-selection="447,524" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="592.1768188476562" height="191"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M204.0928140625,109.5H259.0928"></path><g class="match-fragment subexp" transform="matrix(1,0,0,1,0,15)"><rect rx="3" ry="3" data-selection="455,487" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="224.0928192138672" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'moduleName'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M82.04393125,73.5H156.0684"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,73.5q10,0 10,-10v-53.5q0,-10 10,-10h96.068359375q10,0 10,10v53.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="469,479" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="104"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match match-fragment" transform="matrix(1,0,0,1,24.0244,21)"><path d="M10,42.5q-10,0 -10,10v21.5q0,10 10,10h33.01953125q10,0 10,-10v-21.5q0,-10 -10,-10M53.01953125,57.5l5,-5m-5,5l-5,-5"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="472,477" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="33.01953125" height="63"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>One of:</tspan></text><g transform="matrix(1,0,0,1,5.8379,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="21.34375" height="24" data-selection="473,474" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="21.34375" height="24" data-selection="474,476" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>/</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,146.0684,45.5)"><path d="M10,28q-10,0 -10,10v7q0,10 10,10h38.0244140625q10,0 10,-10v-7q0,-10 -10,-10"></path><g class="charset" transform="matrix(1,0,0,1,10,0)"><rect rx="3" ry="3" data-selection="480,484" class="charset-box" transform="matrix(1,0,0,1,0,11)" width="38.0244140625" height="34"></rect><text x="0" y="0" class="charset-label" transform="matrix(1,0,0,1,0,11)"><tspan>None of:</tspan></text><g transform="matrix(1,0,0,1,7.8794,16)"><g class="literal" transform="matrix(1,0,0,1,0,0)"><g class="label"><rect width="22.265625" height="24" data-selection="482,483" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,234.0928,0)"><path d="M0,109.5q10,0 10,-10v-89.5q0,-10 10,-10h298.0840148925781q10,0 10,10v89.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="487,519" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="308.0840148925781" height="145"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M21.34375,78.5H75.378"></path><g class="match-fragment literal" transform="matrix(1,0,0,1,0,66.5)"><g class="label"><rect width="21.34375" height="24" data-selection="490,492" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>.</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment subexp" transform="matrix(1,0,0,1,31.3438,0)"><rect rx="3" ry="3" data-selection="492,518" class="subexp-box named-group" transform="matrix(1,0,0,1,0,11)" width="256.7402038574219" height="114"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>named group 'moduleExt'</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M102.0342,57.5H146.0684M172.740275,57.5H197.7402"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,57.5q10,0 10,-10v-37.5q0,-10 10,-10h96.068359375q10,0 10,10v37.5q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="505,512" class="subexp-box non-capture" transform="matrix(1,0,0,1,0,11)" width="106.068359375" height="73"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?:] non capturing group</tspan></text><g class="regexp" transform="matrix(1,0,0,1,19.0342,21)"><path d="M0,26.5c10,0 10,-14.5 20,-14.5 M68,26.5c-10,0 -10,-14.5 -20,-14.5 M0,26.5c10,0 10,14.5 20,14.5 M68,26.5c-10,0 -10,14.5 -20,14.5"></path><g transform="matrix(1,0,0,1,20,0)" class="regexp-matches"><path d="M0,12h2M26,12H28M0,41h0M28,41H28"></path><g class="match match-fragment literal" transform="matrix(1,0,0,1,2,0)"><g class="label"><rect width="24" height="24" data-selection="508,509" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>c</tspan><tspan class="quote">”</tspan></text></g></g><g class="match match-fragment literal" transform="matrix(1,0,0,1,0,29)"><g class="label"><rect width="28" height="24" data-selection="510,511" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>m</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,146.0684,45.5)"><g class="label"><rect width="26.671875" height="24" data-selection="513,515" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>js</tspan><tspan class="quote">”</tspan></text></g></g><g class="match-fragment" transform="matrix(1,0,0,1,182.7402,35.5)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h14q10,0 10,10v2q0,10 10,10"></path><g class="literal" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="24" height="24" data-selection="515,516" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>x</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g></g></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,1792.3302,118.5)"><g class="label"><rect width="22.265625" height="24" data-selection="524,525" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>"</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><g class="match-fragment" transform="matrix(1,0,0,1,2363.0333,265.75)"><path d="M0,53q10,0 10,-10v-33q0,-10 10,-10h146.03904724121094q10,0 10,10v33q0,10 10,10"></path><g class="subexp" transform="matrix(1,0,0,1,15,10)"><rect rx="3" ry="3" data-selection="528,536" class="subexp-box" transform="matrix(1,0,0,1,0,11)" width="156.03904724121094" height="64"></rect><text x="0" y="0" class="subexp-label" transform="matrix(1,0,0,1,0,11)"><tspan>[?=] positive lookahead</tspan></text><g class="regexp match" transform="matrix(1,0,0,1,10,21)"><path d="M89.6953125,22H114.6953"></path><g class="match-fragment" transform="matrix(1,0,0,1,0,0)"><path d="M0,22q10,0 10,-10v-2q0,-10 10,-10h64.6953125q10,0 10,10v2q0,10 10,10M15,22q-10,0 -10,10v2q0,10 10,10h74.6953125q10,0 10,-10v-2q0,-10 -10,-10M99.6953125,37l5,-5m-5,5l-5,-5"></path><g class="escape" transform="matrix(1,0,0,1,15,10)"><g class="label"><rect width="74.6953125" height="24" data-selection="531,533" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan>white space</tspan></text></g></g></g><g class="match-fragment literal" transform="matrix(1,0,0,1,114.6953,10)"><g class="label"><rect width="21.34375" height="24" data-selection="534,535" rx="3" ry="3"></rect><text x="0" y="0" transform="matrix(1,0,0,1,5,17)"><tspan class="quote">“</tspan><tspan>;</tspan><tspan class="quote">”</tspan></text></g></g></g></g></g></g><path d="M10,318.75H0M2534.07235,318.75H2569.072265625"></path><circle cx="0" cy="318.75" r="5"></circle><circle cx="2569.072265625" cy="318.75" r="5"></circle></g></svg>
|
|
366
|
+
|