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.
@@ -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>[?&lt;!] 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
+