ultraviolet 0.10.1 → 0.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/History.txt +4 -0
  2. data/bin/uv +3 -2
  3. data/syntax/php.syntax +551 -269
  4. metadata +53 -46
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.10.2
2
+ * Fixed --no-lines command line option.
3
+ * Updated PHP syntax, no longer stalling.
4
+
1
5
  == 0.10.1 / 2007-06-15
2
6
  * Corrected line-number schemes in theme2xhtmlrender
3
7
  * Corrected alpha blending code in theme2xhtmlrender, Now the brilliance themes seem to work!
data/bin/uv CHANGED
@@ -16,6 +16,7 @@ o.copy_files = false
16
16
  o.output = "xhtml"
17
17
  o.headers = false
18
18
  o.theme = "espresso_libre"
19
+ o.lines = true
19
20
 
20
21
  options = OptionParser.new
21
22
 
@@ -57,7 +58,7 @@ options.on( "-t THEME", "--theme THEME", <<DESCRIPTION, Uv.themes) {|val| o.them
57
58
  The theme to be used (e.g. amy, espresso_libre, etc.)
58
59
  DESCRIPTION
59
60
 
60
- options.on( "-n", "--no-lines", <<DESCRIPTION ) {|val| o.no_lines = !val}
61
+ options.on( "-n", "--no-lines", <<DESCRIPTION ) {|val| o.lines = false}
61
62
  Produces output without line numbers
62
63
  DESCRIPTION
63
64
 
@@ -135,5 +136,5 @@ if o.debug
135
136
  exit
136
137
  end
137
138
 
138
- puts Uv.parse( o.text, o.output, o.syntax, ! o.lines, o.theme, o.headers )
139
+ puts Uv.parse( o.text, o.output, o.syntax, o.lines, o.theme, o.headers )
139
140
 
data/syntax/php.syntax CHANGED
@@ -8,7 +8,7 @@ repository:
8
8
  endCaptures:
9
9
  "0":
10
10
  name: punctuation.definition.string.end.php
11
- begin: (?x)'/ (?= (\\.|[^'/])+/[imsxeADSUXu]*' )
11
+ begin: (?x)'/ (?= (\\.|[^'/])++/[imsxeADSUXu]*' )
12
12
  beginCaptures:
13
13
  "0":
14
14
  name: punctuation.definition.string.begin.php
@@ -21,6 +21,12 @@ repository:
21
21
  "3":
22
22
  name: punctuation.definition.arbitrary-repitition.php
23
23
  match: (\{)\d+(,\d+)?(\})
24
+ - name: constant.character.escape.regex.php
25
+ match: (\\){1,2}[.$^\[\]{}]
26
+ comment: "Escaped from the regexp \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)"
27
+ - name: constant.character.escape.php
28
+ match: \\{1,2}[\\']
29
+ comment: "Escaped from the PHP string \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)"
24
30
  - name: string.regexp.character-class.php
25
31
  captures:
26
32
  "0":
@@ -29,11 +35,9 @@ repository:
29
35
  end: \]
30
36
  patterns:
31
37
  - name: constant.character.escape.php
32
- match: \\[\\']
38
+ match: \\[\\'\[\]]
33
39
  - name: keyword.operator.regexp.php
34
40
  match: "[$^+*]"
35
- - name: constant.character.escape.php
36
- match: \\[\\']
37
41
  variables:
38
42
  patterns:
39
43
  - include: "#var_global"
@@ -45,76 +49,95 @@ repository:
45
49
  "0":
46
50
  name: punctuation.definition.string.end.php
47
51
  begin: "\""
52
+ contentName: meta.string-contents.quoted.double.php
48
53
  beginCaptures:
49
54
  "0":
50
55
  name: punctuation.definition.string.begin.php
51
56
  end: "\""
52
57
  patterns:
53
- - name: constant.character.escape.php
54
- match: \\.
55
58
  - include: "#interpolation"
59
+ comment: "This contentName is just to allow the usage of \xE2\x80\x9Cselect scope\xE2\x80\x9D to select the string contents first, then the string with quotes"
56
60
  language:
57
61
  patterns:
58
- - name: meta.scope.heredoc
59
- endCaptures:
60
- "1":
61
- name: keyword.operator.heredoc.php
62
- "2":
63
- name: punctuation.definition.string.php
64
- begin: (<<<)\s*(HTML)
65
- contentName: text.html.basic.embedded
66
- beginCaptures:
67
- "1":
68
- name: punctuation.definition.string.php
69
- "2":
70
- name: keyword.operator.heredoc.php
71
- end: ^(HTML)(;?)$
72
- patterns:
73
- - include: text.html.basic
74
- - include: "#interpolation"
75
- - name: meta.scope.heredoc
76
- endCaptures:
77
- "1":
78
- name: keyword.operator.heredoc.php
79
- "2":
80
- name: punctuation.definition.string.php
81
- begin: (<<<)\s*(XML)
82
- contentName: text.xml.embedded
83
- beginCaptures:
84
- "1":
85
- name: punctuation.definition.string.php
86
- "2":
87
- name: keyword.operator.heredoc.php
88
- end: ^(XML)(;?)$
89
- patterns:
90
- - include: text.xml
91
- - include: "#interpolation"
92
- - name: meta.scope.heredoc
93
- endCaptures:
94
- "1":
95
- name: keyword.operator.heredoc.php
96
- "2":
97
- name: punctuation.definition.string.php
98
- begin: (<<<)\s*(SQL)
99
- contentName: source.sql.embedded
100
- beginCaptures:
101
- "1":
102
- name: punctuation.definition.string.php
103
- "2":
104
- name: keyword.operator.heredoc.php
105
- end: ^(SQL)(;?)$
62
+ - name: string.unquoted.heredoc.php
63
+ begin: (?=<<<\s*(HTML|XML|SQL)\s*$)
64
+ end: (?!<?<<\s*(HTML|XML|SQL)\s*$)
106
65
  patterns:
107
- - include: source.sql
108
- - include: "#interpolation"
66
+ - name: meta.embedded.html
67
+ endCaptures:
68
+ "0":
69
+ name: punctuation.section.embedded.end.php
70
+ "1":
71
+ name: keyword.operator.heredoc.php
72
+ "2":
73
+ name: punctuation.definition.string.php
74
+ begin: (<<<)\s*(HTML)\s*$\n?
75
+ contentName: text.html
76
+ beginCaptures:
77
+ "0":
78
+ name: punctuation.section.embedded.begin.php
79
+ "1":
80
+ name: punctuation.definition.string.php
81
+ "2":
82
+ name: keyword.operator.heredoc.php
83
+ end: ^(HTML)(;?)$\n?
84
+ patterns:
85
+ - include: text.html.basic
86
+ - include: "#interpolation"
87
+ - name: meta.embedded.xml
88
+ endCaptures:
89
+ "0":
90
+ name: punctuation.section.embedded.end.php
91
+ "1":
92
+ name: keyword.operator.heredoc.php
93
+ "2":
94
+ name: punctuation.definition.string.php
95
+ begin: (<<<)\s*(XML)\s*$\n?
96
+ contentName: text.xml
97
+ beginCaptures:
98
+ "0":
99
+ name: punctuation.section.embedded.begin.php
100
+ "1":
101
+ name: punctuation.definition.string.php
102
+ "2":
103
+ name: keyword.operator.heredoc.php
104
+ end: ^(XML)(;?)$\n?
105
+ patterns:
106
+ - include: text.xml
107
+ - include: "#interpolation"
108
+ - name: meta.embedded.sql
109
+ endCaptures:
110
+ "0":
111
+ name: punctuation.section.embedded.end.php
112
+ "1":
113
+ name: keyword.operator.heredoc.php
114
+ "2":
115
+ name: punctuation.definition.string.php
116
+ begin: (<<<)\s*(SQL)\s*$\n?
117
+ contentName: source.sql
118
+ beginCaptures:
119
+ "0":
120
+ name: punctuation.section.embedded.begin.php
121
+ "1":
122
+ name: punctuation.definition.string.php
123
+ "2":
124
+ name: keyword.operator.heredoc.php
125
+ end: ^(SQL)(;?)$\n?
126
+ patterns:
127
+ - include: source.sql
128
+ - include: "#interpolation"
109
129
  - name: comment.block.documentation.phpdoc.php
110
130
  captures:
111
131
  "0":
112
132
  name: punctuation.definition.comment.php
113
- begin: /\*\*\s*$
133
+ begin: /\*\*(?:#@\+)?\s*$
114
134
  end: \*/
115
135
  patterns:
116
136
  - include: "#php_doc"
117
- comment: This now only highlights a docblock if the first line contains only /** - this is to stop highlighting everything as invalid when people do comment banners with /******** ...
137
+ comment: |-
138
+ This now only highlights a docblock if the first line contains only /**
139
+ - this is to stop highlighting everything as invalid when people do comment banners with /******** ...
140
+ - Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate
118
141
  - name: comment.block.php
119
142
  captures:
120
143
  "0":
@@ -132,7 +155,7 @@ repository:
132
155
  name: punctuation.definition.comment.php
133
156
  match: (#).*?($\n?|(?=\?>))
134
157
  - name: meta.interface.php
135
- begin: ^\s*(interface)\s+([a-zA-Z0-9_]+)\s*(extends)?\s*
158
+ begin: ^(?i)\s*(interface)\s+([a-z0-9_]+)\s*(extends)?\s*
136
159
  beginCaptures:
137
160
  "1":
138
161
  name: storage.type.interface.php
@@ -145,7 +168,7 @@ repository:
145
168
  - name: entity.other.inherited-class.php
146
169
  match: "[a-zA-Z0-9_]+"
147
170
  - name: meta.class.php
148
- begin: ^\s*(abstract)?\s*(class)\s+([a-zA-Z0-9_]+)\s*
171
+ begin: (?i)^\s*(abstract|final)?\s*(class)\s+([a-z0-9_]+)\s*
149
172
  beginCaptures:
150
173
  "1":
151
174
  name: storage.modifier.abstract.php
@@ -160,14 +183,14 @@ repository:
160
183
  name: storage.modifier.extends.php
161
184
  "2":
162
185
  name: entity.other.inherited-class.php
163
- match: (extends)\s+([a-zA-Z0-9_]+)\s*
164
- - begin: (implements)\s+([a-zA-Z0-9_]+)\s*
186
+ match: (?i:(extends))\s+([a-zA-Z0-9_]+)\s*
187
+ - begin: (?i:(implements))\s+([a-zA-Z0-9_]+)\s*
165
188
  beginCaptures:
166
189
  "1":
167
190
  name: storage.modifier.implements.php
168
191
  "2":
169
192
  name: support.class.implements.php
170
- end: (?=\s*\bextends)|$
193
+ end: (?=\s*\b(?i:(extends)))|$
171
194
  patterns:
172
195
  - captures:
173
196
  "1":
@@ -206,7 +229,38 @@ repository:
206
229
  name: entity.name.function.php
207
230
  end: \)
208
231
  patterns:
209
- - name: meta.function.argument.typehinted.php
232
+ - name: meta.function.argument.array.php
233
+ endCaptures:
234
+ "0":
235
+ name: punctuation.definition.array.end.php
236
+ begin: "(?x)\n\
237
+ \t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\
238
+ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\
239
+ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\
240
+ \t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\
241
+ \t\t\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\
242
+ \t\t\t\t\t\t\t\t\t"
243
+ contentName: meta.array.php
244
+ beginCaptures:
245
+ "6":
246
+ name: support.function.construct.php
247
+ "7":
248
+ name: punctuation.definition.array.begin.php
249
+ "1":
250
+ name: storage.type.php
251
+ "2":
252
+ name: storage.modifier.php
253
+ "3":
254
+ name: variable.other.php
255
+ "4":
256
+ name: punctuation.definition.variable.php
257
+ "5":
258
+ name: keyword.operator.assignment.php
259
+ end: \)
260
+ patterns:
261
+ - include: "#strings"
262
+ - include: "#numbers"
263
+ - name: meta.function.argument.array.php
210
264
  captures:
211
265
  "6":
212
266
  name: constant.language.php
@@ -215,30 +269,77 @@ repository:
215
269
  "1":
216
270
  name: storage.type.php
217
271
  "2":
272
+ name: storage.modifier.php
273
+ "3":
274
+ name: variable.other.php
275
+ "4":
276
+ name: punctuation.definition.variable.php
277
+ "5":
278
+ name: keyword.operator.assignment.php
279
+ match: "(?x)\n\
280
+ \t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\
281
+ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\
282
+ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\
283
+ \t\t\t\t\t\t\t\t\t(?:\n\
284
+ \t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\
285
+ \t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\
286
+ \t\t\t\t\t\t\t\t\t\t\t(NULL)\n\
287
+ \t\t\t\t\t\t\t\t\t\t\t|\n\
288
+ \t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\
289
+ \t\t\t\t\t\t\t\t\t\t\t)?\n\
290
+ \t\t\t\t\t\t\t\t\t)?\n\
291
+ \t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\
292
+ \t\t\t\t\t\t\t\t\t"
293
+ - name: meta.function.argument.typehinted.php
294
+ captures:
295
+ "6":
296
+ name: constant.language.php
297
+ "7":
298
+ name: invalid.illegal.non-null-typehinted.php
299
+ "1":
218
300
  name: support.class.php
301
+ "2":
302
+ name: storage.modifier.php
219
303
  "3":
220
304
  name: variable.other.php
221
305
  "4":
222
306
  name: punctuation.definition.variable.php
223
307
  "5":
224
308
  name: keyword.operator.assignment.php
225
- match: \s*(?i:(array)|([A-Za-z_][A-Za-z_0-9]*))\s*((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\s*(=)\s*((?i:NULL)|(.+?)))?\s*(?=,|\))
309
+ match: "(?x)\n\
310
+ \t\t\t\t\t\t\t\t\t\\s*([A-Za-z_][A-Za-z_0-9]*) # Typehinted class name\n\
311
+ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\
312
+ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\
313
+ \t\t\t\t\t\t\t\t\t(?:\n\
314
+ \t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\
315
+ \t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\
316
+ \t\t\t\t\t\t\t\t\t\t\t(NULL)\n\
317
+ \t\t\t\t\t\t\t\t\t\t\t|\n\
318
+ \t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\
319
+ \t\t\t\t\t\t\t\t\t\t\t)?\n\
320
+ \t\t\t\t\t\t\t\t\t)?\n\
321
+ \t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\
322
+ \t\t\t\t\t\t\t\t\t"
226
323
  - name: meta.function.argument.no-default.php
227
324
  captures:
228
325
  "1":
229
- name: variable.other.php
326
+ name: storage.modifier.php
230
327
  "2":
328
+ name: variable.other.php
329
+ "3":
231
330
  name: punctuation.definition.variable.php
232
- match: \s*((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)\s*(?=,|\))
331
+ match: (\s*&)?\s*((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)\s*(?=,|\))
233
332
  - name: meta.function.argument.default.php
234
333
  captures:
235
334
  "1":
236
- name: variable.other.php
335
+ name: storage.modifier.php
237
336
  "2":
238
- name: punctuation.definition.variable.php
337
+ name: variable.other.php
239
338
  "3":
339
+ name: punctuation.definition.variable.php
340
+ "4":
240
341
  name: keyword.operator.assignment.php
241
- begin: \s*((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\s*(=)\s*)\s*
342
+ begin: (\s*&)?\s*((\$+)[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\s*(=)\s*)\s*
242
343
  end: (?=,|\))
243
344
  patterns:
244
345
  - include: "#parameter-default-types"
@@ -249,9 +350,9 @@ repository:
249
350
  begin: /\*
250
351
  end: \*/
251
352
  - name: storage.type.php
252
- match: (?i)\b(real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|parent|self|__(autoload|c(all|lone|onstruct)|destruct|get|set|sleep|toString|wakeup))\b
353
+ match: (?i)\b(real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|parent|self|object)\b
253
354
  - name: storage.modifier.php
254
- match: \b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\b
355
+ match: (?i)\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\b
255
356
  - include: "#object"
256
357
  - captures:
257
358
  "1":
@@ -293,9 +394,7 @@ repository:
293
394
  match: =>
294
395
  - name: storage.modifier.reference.php
295
396
  match: "&(?=\\s*(\\$|new|[A-Za-z_][A-Za-z_0-9]+(?=\\s*\\()))"
296
- - name: keyword.operator.assignment.php
297
- match: "="
298
- - name: keyword.operator.terminator.php
397
+ - name: punctuation.terminator.expression.php
299
398
  match: ;
300
399
  - name: keyword.operator.error-control.php
301
400
  match: (@)
@@ -311,6 +410,8 @@ repository:
311
410
  match: (===|==|!==|!=|<=|>=|<>|<|>)
312
411
  - name: keyword.operator.string.php
313
412
  match: (\.=|\.)
413
+ - name: keyword.operator.assignment.php
414
+ match: "="
314
415
  - captures:
315
416
  "1":
316
417
  name: keyword.operator.type.php
@@ -382,6 +483,7 @@ repository:
382
483
  "0":
383
484
  name: punctuation.definition.string.end.php
384
485
  begin: "'"
486
+ contentName: meta.string-contents.quoted.single.php
385
487
  beginCaptures:
386
488
  "0":
387
489
  name: punctuation.definition.string.begin.php
@@ -395,11 +497,61 @@ repository:
395
497
  "0":
396
498
  name: punctuation.definition.string.end.php
397
499
  begin: "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)"
500
+ contentName: source.sql.embedded.php
398
501
  beginCaptures:
399
502
  "0":
400
503
  name: punctuation.definition.string.begin.php
401
504
  end: "\""
402
505
  patterns:
506
+ - name: comment.line.number-sign.sql
507
+ match: "#(\\\\\"|[^\"])*(?=\"|$\\n?)"
508
+ - name: comment.line.double-dash.sql
509
+ match: --(\\"|[^"])*(?="|$\n?)
510
+ - name: string.quoted.single.unclosed.sql
511
+ begin: "'(?=[^']*?\")"
512
+ end: (?=")
513
+ patterns:
514
+ - name: constant.character.escape.php
515
+ match: \\[\\']
516
+ comment: |-
517
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
518
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
519
+ - name: string.quoted.other.backtick.unclosed.sql
520
+ begin: `(?=[^`]*?")
521
+ end: (?=")
522
+ patterns:
523
+ - name: constant.character.escape.php
524
+ match: \\[\\']
525
+ comment: |-
526
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
527
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
528
+ - name: string.quoted.double.unclosed.sql
529
+ begin: \\"(?!([^\\"]|\\[^"])*\\")(?=(\\[^"]|.)*?")
530
+ end: (?=")
531
+ patterns:
532
+ - name: constant.character.escape.php
533
+ match: \\[\\']
534
+ comment: |-
535
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
536
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
537
+ - name: string.quoted.double.sql
538
+ captures:
539
+ "0":
540
+ name: constant.character.escape.php
541
+ begin: \\"
542
+ end: \\"
543
+ patterns:
544
+ - include: "#interpolation"
545
+ - name: string.quoted.other.backtick.sql
546
+ begin: `
547
+ end: `
548
+ patterns:
549
+ - include: "#interpolation"
550
+ - name: string.quoted.single.sql
551
+ begin: "'"
552
+ end: "'"
553
+ patterns:
554
+ - include: "#interpolation"
403
555
  - name: constant.character.escape.php
404
556
  match: \\.
405
557
  - include: "#interpolation"
@@ -419,343 +571,350 @@ repository:
419
571
  end: \)
420
572
  patterns:
421
573
  - include: "#language"
422
- - name: support.function.construct.php
423
- match: (?i)\b(isset|unset|print|e(cho|val|mpty)|list)\b
424
574
  - name: support.function.array.php
425
- match: (?i)\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|xtract)|k(sort|ey(_exists)?|rsort)|a(sort|r(sort|ray_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|verse)|and)|m(ultisort|erge(_recursive)?|ap))))|r(sort|eset|ange)|m(in|ax))\b(?=\s*\()
575
+ match: (?i)\b(s(huffle|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|prev|e(nd|xtract)|k(sort|ey|rsort)|a(sort|r(sort|ray_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|verse)|and)|m(ultisort|erge(_recursive)?|ap))))|r(sort|eset|ange)|m(in|ax))(?=\s*\()
426
576
  - name: support.function.assert.php
427
- match: (?i)\bassert(_options)?\b(?=\s*\()
577
+ match: (?i)\bassert(_options)?(?=\s*\()
428
578
  - name: support.function.attr.php
429
- match: (?i)\b(isId|dom_attr_is_id)\b(?=\s*\()
579
+ match: (?i)\bdom_attr_is_id(?=\s*\()
430
580
  - name: support.function.base64.php
431
- match: (?i)\bbase64_(decode|encode)\b(?=\s*\()
581
+ match: (?i)\bbase64_(decode|encode)(?=\s*\()
432
582
  - name: support.function.basic_functions.php
433
- match: (?i)\b(highlight_(string|file)|s(how_source|ys_getloadavg|et_(include_path|magic_quotes_runtime)|leep)|c(on(stant|nection_(status|aborted))|all_user_(func(_array)?|method(_array)?))|time_(sleep_until|nanosleep)|i(s_uploaded_file|n(i_(set|alter|restore|get(_all)?)|et_(ntop|pton))|p2long|gnore_user_abort|mport_request_variables)|u(sleep|nregister_tick_function)|error_(log|get_last)|p(hp_strip_whitespace|utenv|arse_ini_file|rint_r)|flush|long2ip|re(store_include_path|gister_(shutdown_function|tick_function))|get(servby(name|port)|opt|_(c(urrent_user|fg_var)|include_path|magic_quotes_(gpc|runtime))|protobyn(umber|ame)|env)|m(ove_uploaded_file|agic_quotes_runtime))\b(?=\s*\()
583
+ match: (?i)\b(highlight_(string|file)|s(ys_getloadavg|et_(include_path|magic_quotes_runtime)|leep)|c(on(stant|nection_(status|aborted))|all_user_(func(_array)?|method(_array)?))|time_(sleep_until|nanosleep)|i(s_uploaded_file|n(i_(set|restore|get(_all)?)|et_(ntop|pton))|p2long|gnore_user_abort|mport_request_variables)|u(sleep|nregister_tick_function)|error_(log|get_last)|p(hp_strip_whitespace|utenv|arse_ini_file|rint_r)|flush|long2ip|re(store_include_path|gister_(shutdown_function|tick_function))|get(servby(name|port)|opt|_(c(urrent_user|fg_var)|include_path|magic_quotes_(gpc|runtime))|protobyn(umber|ame)|env)|move_uploaded_file)(?=\s*\()
434
584
  - name: support.function.bcmath.php
435
- match: (?i)\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\b(?=\s*\()
585
+ match: (?i)\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))(?=\s*\()
436
586
  - name: support.function.birdstep.php
437
- match: (?i)\b(velocis_(c(o(nnect|mmit)|lose)|off_autocommit|exec|f(ieldn(um|ame)|etch|reeresult)|autocommit|r(ollback|esult))|birdstep_(c(o(nnect|mmit)|lose)|off_autocommit|exec|f(ieldn(um|ame)|etch|reeresult)|autocommit|r(ollback|esult)))\b(?=\s*\()
587
+ match: (?i)\bbirdstep_(c(o(nnect|mmit)|lose)|off_autocommit|exec|f(ieldn(um|ame)|etch|reeresult)|autocommit|r(ollback|esult))(?=\s*\()
438
588
  - name: support.function.browscap.php
439
- match: (?i)\bget_browser\b(?=\s*\()
589
+ match: (?i)\bget_browser(?=\s*\()
440
590
  - name: support.function.builtin_functions.php
441
- match: (?i)\b(s(tr(nc(asecmp|mp)|c(asecmp|mp)|len)|et_e(rror_handler|xception_handler))|c(lass_exists|reate_function)|trigger_error|i(s_(subclass_of|a)|nterface_exists)|de(fine(d)?|bug_(print_backtrace|backtrace))|zend_version|property_exists|e(ach|rror_reporting|xtension_loaded)|func(tion_exists|_(num_args|get_arg(s)?))|leak|restore_e(rror_handler|xception_handler)|get_(class(_(vars|methods))?|included_files|de(clared_(classes|interfaces)|fined_(constants|vars|functions))|object_vars|extension_funcs|parent_class|loaded_extensions|resource_type)|method_exists)\b(?=\s*\()
591
+ match: (?i)\b(s(tr(nc(asecmp|mp)|c(asecmp|mp)|len)|et_e(rror_handler|xception_handler))|c(lass_exists|reate_function)|trigger_error|i(s_(subclass_of|a)|nterface_exists)|de(fine(d)?|bug_(print_backtrace|backtrace))|zend_version|property_exists|e(ach|rror_reporting|xtension_loaded)|func(tion_exists|_(num_args|get_arg(s)?))|leak|restore_e(rror_handler|xception_handler)|get_(class(_(vars|methods))?|included_files|de(clared_(classes|interfaces)|fined_(constants|vars|functions))|object_vars|extension_funcs|parent_class|loaded_extensions|resource_type)|method_exists)(?=\s*\()
442
592
  - name: support.function.bz2.php
443
- match: (?i)\bbz(compress|decompress|open|err(str|no|or)|read)\b(?=\s*\()
593
+ match: (?i)\bbz(compress|decompress|open|err(str|no|or)|read)(?=\s*\()
444
594
  - name: support.function.cal_unix.php
445
- match: (?i)\b(jdtounix|unixtojd)\b(?=\s*\()
595
+ match: (?i)\b(jdtounix|unixtojd)(?=\s*\()
446
596
  - name: support.function.calendar.php
447
- match: (?i)\b(cal_(to_jd|info|days_in_month|from_jd)|j(d(to(j(ulian|ewish)|french|gregorian)|dayofweek|monthname)|uliantojd|ewishtojd)|frenchtojd|gregoriantojd)\b(?=\s*\()
597
+ match: (?i)\b(cal_(to_jd|info|days_in_month|from_jd)|j(d(to(j(ulian|ewish)|french|gregorian)|dayofweek|monthname)|uliantojd|ewishtojd)|frenchtojd|gregoriantojd)(?=\s*\()
448
598
  - name: support.function.characterdata.php
449
- match: (?i)\b(substringData|insertData|d(om_characterdata_(substring_data|insert_data|delete_data|append_data|replace_data)|eleteData)|appendData|replaceData)\b(?=\s*\()
599
+ match: (?i)\bdom_characterdata_(substring_data|insert_data|delete_data|append_data|replace_data)(?=\s*\()
450
600
  - name: support.function.com_com.php
451
- match: (?i)\bcom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)\b(?=\s*\()
601
+ match: (?i)\bcom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)(?=\s*\()
452
602
  - name: support.function.com_variant.php
453
- match: (?i)\bvariant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|get_type|round|xor|m(od|ul))\b(?=\s*\()
603
+ match: (?i)\bvariant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|get_type|round|xor|m(od|ul))(?=\s*\()
454
604
  - name: support.function.crc32.php
455
- match: (?i)\bcrc32\b(?=\s*\()
605
+ match: (?i)\bcrc32(?=\s*\()
456
606
  - name: support.function.crypt.php
457
- match: (?i)\bcrypt\b(?=\s*\()
607
+ match: (?i)\bcrypt(?=\s*\()
458
608
  - name: support.function.ctype.php
459
- match: (?i)\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\b(?=\s*\()
609
+ match: (?i)\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)(?=\s*\()
460
610
  - name: support.function.cyr_convert.php
461
- match: (?i)\bconvert_cyr_string\b(?=\s*\()
611
+ match: (?i)\bconvert_cyr_string(?=\s*\()
462
612
  - name: support.function.datetime.php
463
- match: (?i)\bstrptime\b(?=\s*\()
613
+ match: (?i)\bstrptime(?=\s*\()
464
614
  - name: support.function.dba.php
465
- match: (?i)\bdba_(handlers|sync|nextkey|close|insert|delete|op(timize|en)|exists|popen|key_split|f(irstkey|etch)|list|replace)\b(?=\s*\()
615
+ match: (?i)\bdba_(handlers|sync|nextkey|close|insert|delete|op(timize|en)|exists|popen|key_split|f(irstkey|etch)|list|replace)(?=\s*\()
466
616
  - name: support.function.dbase.php
467
- match: (?i)\bdbase_(num(fields|records)|c(lose|reate)|delete_record|open|pack|add_record|get_(header_info|record(_with_names)?)|replace_record)\b(?=\s*\()
617
+ match: (?i)\bdbase_(num(fields|records)|c(lose|reate)|delete_record|open|pack|add_record|get_(header_info|record(_with_names)?)|replace_record)(?=\s*\()
468
618
  - name: support.function.dir.php
469
- match: (?i)\b(scandir|c(h(dir|root)|lose(dir)?)|dir|opendir|re(addir|wind(dir)?)|g(etcwd|lob))\b(?=\s*\()
619
+ match: (?i)\b(scandir|c(h(dir|root)|losedir)|dir|opendir|re(addir|winddir)|g(etcwd|lob))(?=\s*\()
470
620
  - name: support.function.dl.php
471
- match: (?i)\bdl\b(?=\s*\()
621
+ match: (?i)\bdl(?=\s*\()
472
622
  - name: support.function.dns.php
473
- match: (?i)\b(checkdnsrr|dns_(check_record|get_(record|mx))|get(hostby(name(l)?|addr)|mxrr))\b(?=\s*\()
623
+ match: (?i)\b(dns_(check_record|get_(record|mx))|gethostby(name(l)?|addr))(?=\s*\()
474
624
  - name: support.function.document.php
475
- match: (?i)\b(s(chemaValidate|ave(XML|HTML(File)?))|normalizeDocument|create(C(omment|DATASection)|TextNode|DocumentFragment|ProcessingInstruction|E(ntityReference|lement(NS)?)|Attribute(NS)?)|importNode|dom_document_(s(chema_validate(_file)?|ave(_html(_file)?|xml)?)|normalize_document|create_(c(datasection|omment)|text_node|document_fragment|processing_instruction|e(ntity_reference|lement(_ns)?)|attribute(_ns)?)|import_node|validate|load(_html(_file)?|xml)?|adopt_node|re(name_node|laxNG_validate_(file|xml))|get_element(s_by_tag_name(_ns)?|_by_id)|xinclude)|validate|adoptNode|re(nameNode|laxNGValidate(Source)?)|getElementById|xinclude)\b(?=\s*\()
625
+ match: (?i)\bdom_document_(s(chema_validate(_file)?|ave(_html(_file)?|xml)?)|normalize_document|create_(c(datasection|omment)|text_node|document_fragment|processing_instruction|e(ntity_reference|lement(_ns)?)|attribute(_ns)?)|import_node|validate|load(_html(_file)?|xml)?|adopt_node|re(name_node|laxNG_validate_(file|xml))|get_element(s_by_tag_name(_ns)?|_by_id)|xinclude)(?=\s*\()
476
626
  - name: support.function.domconfiguration.php
477
- match: (?i)\b(canSetParameter|dom_domconfiguration_(set_parameter|can_set_parameter|get_parameter))\b(?=\s*\()
627
+ match: (?i)\bdom_domconfiguration_(set_parameter|can_set_parameter|get_parameter)(?=\s*\()
478
628
  - name: support.function.domerrorhandler.php
479
- match: (?i)\b(handleError|dom_domerrorhandler_handle_error)\b(?=\s*\()
629
+ match: (?i)\bdom_domerrorhandler_handle_error(?=\s*\()
480
630
  - name: support.function.domimplementation.php
481
- match: (?i)\bdom_domimplementation_(has_feature|create_document(_type)?|get_feature)\b(?=\s*\()
631
+ match: (?i)\bdom_domimplementation_(has_feature|create_document(_type)?|get_feature)(?=\s*\()
482
632
  - name: support.function.domimplementationlist.php
483
- match: (?i)\bdom_domimplementationlist_item\b(?=\s*\()
633
+ match: (?i)\bdom_domimplementationlist_item(?=\s*\()
484
634
  - name: support.function.domimplementationsource.php
485
- match: (?i)\b(dom_domimplementationsource_get_domimplementation(s)?|getDomimplementation(s)?)\b(?=\s*\()
635
+ match: (?i)\bdom_domimplementationsource_get_domimplementation(s)?(?=\s*\()
486
636
  - name: support.function.domstringlist.php
487
- match: (?i)\bdom_domstringlist_item\b(?=\s*\()
637
+ match: (?i)\bdom_domstringlist_item(?=\s*\()
488
638
  - name: support.function.easter.php
489
- match: (?i)\beaster_da(ys|te)\b(?=\s*\()
639
+ match: (?i)\beaster_da(ys|te)(?=\s*\()
490
640
  - name: support.function.element.php
491
- match: (?i)\b(hasAttribute(NS)?|set(IdAttribute(N(S|ode))?|Attribute(N(S|ode(NS)?))?)|dom_element_(has_attribute(_ns)?|set_(id_attribute(_n(s|ode))?|attribute(_n(s|ode(_ns)?))?)|remove_attribute(_n(s|ode))?|get_(elements_by_tag_name(_ns)?|attribute(_n(s|ode(_ns)?))?))|removeAttribute(N(S|ode))?|get(ElementsByTagName(NS)?|Attribute(N(S|ode(NS)?))?))\b(?=\s*\()
641
+ match: (?i)\bdom_element_(has_attribute(_ns)?|set_(id_attribute(_n(s|ode))?|attribute(_n(s|ode(_ns)?))?)|remove_attribute(_n(s|ode))?|get_(elements_by_tag_name(_ns)?|attribute(_n(s|ode(_ns)?))?))(?=\s*\()
492
642
  - name: support.function.exec.php
493
- match: (?i)\b(s(hell_exec|ystem)|p(assthru|roc_nice)|e(scapeshell(cmd|arg)|xec))\b(?=\s*\()
643
+ match: (?i)\b(s(hell_exec|ystem)|p(assthru|roc_nice)|e(scapeshell(cmd|arg)|xec))(?=\s*\()
494
644
  - name: support.function.exif.php
495
- match: (?i)\b(exif_(imagetype|t(humbnail|agname)|read_data)|read_exif_data)\b(?=\s*\()
645
+ match: (?i)\bexif_(imagetype|t(humbnail|agname)|read_data)(?=\s*\()
496
646
  - name: support.function.fdf.php
497
- match: (?i)\bfdf_(header|s(et_(s(tatus|ubmit_form_action)|target_frame|o(n_import_javascript|pt)|javascript_action|encoding|v(ersion|alue)|f(ile|lags)|ap)|ave(_string)?)|next_field_name|c(lose|reate)|open(_string)?|e(num_values|rr(no|or))|add_(template|doc_javascript)|remove_item|get_(status|opt|encoding|v(ersion|alue)|f(ile|lags)|a(ttachment|p)))\b(?=\s*\()
647
+ match: (?i)\bfdf_(header|s(et_(s(tatus|ubmit_form_action)|target_frame|o(n_import_javascript|pt)|javascript_action|encoding|v(ersion|alue)|f(ile|lags)|ap)|ave(_string)?)|next_field_name|c(lose|reate)|open(_string)?|e(num_values|rr(no|or))|add_(template|doc_javascript)|remove_item|get_(status|opt|encoding|v(ersion|alue)|f(ile|lags)|a(ttachment|p)))(?=\s*\()
498
648
  - name: support.function.file.php
499
- match: (?i)\b(sys_get_temp_dir|copy|t(empnam|mpfile)|u(nlink|mask)|p(close|open)|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(_(put_contents|get_contents))?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|r(e(name|a(dfile|lpath)|wind)|mdir)|g(z(seek|close|tell|eof|p(uts|assthru)|write|re(ad|wind)|get(s(s)?|c))|et_meta_tags)|bz(close|flush|write)|mkdir)\b(?=\s*\()
649
+ match: (?i)\b(sys_get_temp_dir|copy|t(empnam|mpfile)|u(nlink|mask)|p(close|open)|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(_(put_contents|get_contents))?|open|p(utcsv|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|r(e(name|a(dfile|lpath)|wind)|mdir)|get_meta_tags|mkdir)(?=\s*\()
500
650
  - name: support.function.filestat.php
501
- match: (?i)\b(stat|c(h(own|grp|mod)|learstatcache)|is_(dir|executable|file|link|writ(eable|able)|readable)|touch|disk(_(total_space|free_space)|freespace)|file(size|ctime|type|inode|owner|_exists|perms|atime|group|mtime)|l(stat|chgrp))\b(?=\s*\()
651
+ match: (?i)\b(stat|c(h(own|grp|mod)|learstatcache)|is_(dir|executable|file|link|writable|readable)|touch|disk_(total_space|free_space)|file(size|ctime|type|inode|owner|_exists|perms|atime|group|mtime)|l(stat|chgrp))(?=\s*\()
502
652
  - name: support.function.filter.php
503
- match: (?i)\bfilter_(has_var|input(_array)?|var(_array)?)\b(?=\s*\()
653
+ match: (?i)\bfilter_(has_var|input(_array)?|var(_array)?)(?=\s*\()
504
654
  - name: support.function.formatted_print.php
505
- match: (?i)\b(sprintf|printf|v(sprintf|printf|fprintf)|fprintf)\b(?=\s*\()
655
+ match: (?i)\b(sprintf|printf|v(sprintf|printf|fprintf)|fprintf)(?=\s*\()
506
656
  - name: support.function.fsock.php
507
- match: (?i)\b(pfsockopen|fsockopen)\b(?=\s*\()
657
+ match: (?i)\b(pfsockopen|fsockopen)(?=\s*\()
508
658
  - name: support.function.ftok.php
509
- match: (?i)\bftok\b(?=\s*\()
659
+ match: (?i)\bftok(?=\s*\()
510
660
  - name: support.function.gd.php
511
- match: (?i)\b(image(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|2wbmp|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|d(estroy|ashedline)|jpeg|ellipse|p(s(slantfont|copyfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|a(ntialias|lphablending|rc)|l(ine|oadfont|ayereffect)|g(if|d(2)?|ammacorrect)|r(otate|ectangle)|xbm)|jpeg2wbmp|png2wbmp|gd_info)\b(?=\s*\()
661
+ match: (?i)\b(image(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|2wbmp|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|d(estroy|ashedline)|jpeg|ellipse|p(s(slantfont|copyfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|a(ntialias|lphablending|rc)|l(ine|oadfont|ayereffect)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm)|jpeg2wbmp|png2wbmp|gd_info)(?=\s*\()
512
662
  - name: support.function.gettext.php
513
- match: (?i)\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\b(?=\s*\()
663
+ match: (?i)\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))(?=\s*\()
514
664
  - name: support.function.gmp.php
515
- match: (?i)\bgmp_(hamdist|s(can(1|0)|ign|trval|ub|etbit|qrt(rem)?)|c(om|lrbit|mp)|ne(g|xtprime)|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\b(?=\s*\()
665
+ match: (?i)\bgmp_(hamdist|s(can(1|0)|ign|trval|ub|etbit|qrt(rem)?)|c(om|lrbit|mp)|ne(g|xtprime)|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))(?=\s*\()
516
666
  - name: support.function.hash.php
517
- match: (?i)\bhash(_(hmac(_file)?|init|update(_(stream|file))?|fi(nal|le)|algos))?\b(?=\s*\()
667
+ match: (?i)\bhash(_(hmac(_file)?|init|update(_(stream|file))?|fi(nal|le)|algos))?(?=\s*\()
518
668
  - name: support.function.hash_md.php
519
- match: (?i)\bmd5(_file)?\b(?=\s*\()
669
+ match: (?i)\bmd5(_file)?(?=\s*\()
520
670
  - name: support.function.hash_sha.php
521
- match: (?i)\bsha1(_file)?\b(?=\s*\()
671
+ match: (?i)\bsha1(_file)?(?=\s*\()
522
672
  - name: support.function.head.php
523
- match: (?i)\b(set(cookie|rawcookie)|header(s_(sent|list))?)\b(?=\s*\()
673
+ match: (?i)\b(set(cookie|rawcookie)|header(s_(sent|list))?)(?=\s*\()
524
674
  - name: support.function.html.php
525
- match: (?i)\b(html(specialchars(_decode)?|_entity_decode|entities)|get_html_translation_table)\b(?=\s*\()
675
+ match: (?i)\b(html(specialchars(_decode)?|_entity_decode|entities)|get_html_translation_table)(?=\s*\()
526
676
  - name: support.function.http.php
527
- match: (?i)\bhttp_build_query\b(?=\s*\()
677
+ match: (?i)\bhttp_build_query(?=\s*\()
528
678
  - name: support.function.ibase_blobs.php
529
- match: (?i)\b(ibase_blob_(c(ancel|lose|reate)|i(nfo|mport)|open|echo|add|get)|fbird_blob_(c(ancel|lose|reate)|i(nfo|mport)|open|echo|add|get))\b(?=\s*\()
679
+ match: (?i)\bibase_blob_(c(ancel|lose|reate)|i(nfo|mport)|open|echo|add|get)(?=\s*\()
530
680
  - name: support.function.ibase_events.php
531
- match: (?i)\b(ibase_(set_event_handler|free_event_handler|wait_event)|fbird_(set_event_handler|free_event_handler|wait_event))\b(?=\s*\()
681
+ match: (?i)\bibase_(set_event_handler|free_event_handler|wait_event)(?=\s*\()
532
682
  - name: support.function.ibase_query.php
533
- match: (?i)\b(ibase_(n(um_(params|fields|rows)|ame_result)|execute|p(aram_info|repare)|f(ield_info|etch_(object|assoc|row)|ree_(query|result))|query|affected_rows)|fbird_(n(um_(params|fields|rows)|ame_result)|execute|p(aram_info|repare)|query|f(ield_info|etch_(object|assoc|row)|ree_(query|result))|affected_rows))\b(?=\s*\()
683
+ match: (?i)\bibase_(n(um_(params|fields|rows)|ame_result)|execute|p(aram_info|repare)|f(ield_info|etch_(object|assoc|row)|ree_(query|result))|query|affected_rows)(?=\s*\()
534
684
  - name: support.function.ibase_service.php
535
- match: (?i)\b(ibase_(serv(ice_(detach|attach)|er_info)|d(elete_user|b_info)|add_user|restore|backup|m(odify_user|aintain_db))|fbird_(serv(ice_(detach|attach)|er_info)|d(elete_user|b_info)|add_user|restore|backup|m(odify_user|aintain_db)))\b(?=\s*\()
685
+ match: (?i)\bibase_(serv(ice_(detach|attach)|er_info)|d(elete_user|b_info)|add_user|restore|backup|m(odify_user|aintain_db))(?=\s*\()
536
686
  - name: support.function.iconv.php
537
- match: (?i)\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\b(?=\s*\()
687
+ match: (?i)\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)(?=\s*\()
538
688
  - name: support.function.image.php
539
- match: (?i)\b(image_type_to_(extension|mime_type)|getimagesize)\b(?=\s*\()
689
+ match: (?i)\b(image_type_to_(extension|mime_type)|getimagesize)(?=\s*\()
540
690
  - name: support.function.info.php
541
- match: (?i)\b(zend_logo_guid|php(credits|info|_(sapi_name|ini_scanned_files|uname|egg_logo_guid|logo_guid|real_logo_guid)|version))\b(?=\s*\()
691
+ match: (?i)\b(zend_logo_guid|php(credits|info|_(sapi_name|ini_scanned_files|uname|egg_logo_guid|logo_guid|real_logo_guid)|version))(?=\s*\()
542
692
  - name: support.function.interbase.php
543
- match: (?i)\b(ibase_(c(o(nnect|mmit(_ret)?)|lose)|trans|drop_db|pconnect|err(code|msg)|gen_id|rollback(_ret)?)|fbird_(c(o(nnect|mmit(_ret)?)|lose)|trans|drop_db|pconnect|err(code|msg)|gen_id|rollback(_ret)?))\b(?=\s*\()
693
+ match: (?i)\bibase_(c(o(nnect|mmit(_ret)?)|lose)|trans|drop_db|pconnect|err(code|msg)|gen_id|rollback(_ret)?)(?=\s*\()
544
694
  - name: support.function.interface.php
545
- match: (?i)\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo)\b(?=\s*\()
695
+ match: (?i)\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo)(?=\s*\()
546
696
  - name: support.function.iptc.php
547
- match: (?i)\biptc(parse|embed)\b(?=\s*\()
697
+ match: (?i)\biptc(parse|embed)(?=\s*\()
698
+ - name: support.function.json.php
699
+ match: (?i)\bjson_(decode|encode)(?=\s*\()
548
700
  - name: support.function.lcg.php
549
- match: (?i)\blcg_value\b(?=\s*\()
701
+ match: (?i)\blcg_value(?=\s*\()
550
702
  - name: support.function.ldap.php
551
- match: (?i)\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(nnect|unt_entries|mpare)|lose)|t61_to_8859|8859_to_t61|d(n2ufn|elete)|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|add|list|get_(option|dn|entries|values(_len)?|attributes)|re(name|ad)|mod(ify|_(del|add|replace))|bind)\b(?=\s*\()
703
+ match: (?i)\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|co(nnect|unt_entries|mpare)|t61_to_8859|8859_to_t61|d(n2ufn|elete)|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|add|list|get_(option|dn|entries|values_len|attributes)|re(name|ad)|mod_(del|add|replace)|bind)(?=\s*\()
552
704
  - name: support.function.levenshtein.php
553
- match: (?i)\blevenshtein\b(?=\s*\()
705
+ match: (?i)\blevenshtein(?=\s*\()
554
706
  - name: support.function.libxml.php
555
- match: (?i)\blibxml_(set_streams_context|clear_errors|use_internal_errors|get_(errors|last_error))\b(?=\s*\()
707
+ match: (?i)\blibxml_(set_streams_context|clear_errors|use_internal_errors|get_(errors|last_error))(?=\s*\()
556
708
  - name: support.function.link.php
557
- match: (?i)\b(symlink|link(info)?|readlink)\b(?=\s*\()
709
+ match: (?i)\b(symlink|link(info)?|readlink)(?=\s*\()
558
710
  - name: support.function.mail.php
559
- match: (?i)\b(ezmlm_hash|mail)\b(?=\s*\()
711
+ match: (?i)\b(ezmlm_hash|mail)(?=\s*\()
560
712
  - name: support.function.main.php
561
- match: (?i)\bset_time_limit\b(?=\s*\()
713
+ match: (?i)\bset_time_limit(?=\s*\()
562
714
  - name: support.function.math.php
563
- match: (?i)\b(h(ypot|exdec)|s(in(h)?|qrt)|number_format|c(os(h)?|eil)|is_(nan|infinite|finite)|tan(h)?|octdec|de(c(hex|oct|bin)|g2rad)|exp(m1)?|p(i|ow)|f(loor|mod)|log(1(p|0))?|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|ad2deg)|b(indec|ase_convert))\b(?=\s*\()
715
+ match: (?i)\b(h(ypot|exdec)|s(in(h)?|qrt)|number_format|c(os(h)?|eil)|is_(nan|infinite|finite)|tan(h)?|octdec|de(c(hex|oct|bin)|g2rad)|exp(m1)?|p(i|ow)|f(loor|mod)|log(1(p|0))?|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|ad2deg)|b(indec|ase_convert))(?=\s*\()
564
716
  - name: support.function.mbstring.php
565
- match: (?i)\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|encode_(numericentity|mimeheader)|p(arse_str|referred_mime_name)|l(ist_(encodings(_alias_names)?|mime_names)|anguage)|get_info)\b(?=\s*\()
717
+ match: (?i)\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|encode_(numericentity|mimeheader)|p(arse_str|referred_mime_name)|l(ist_(encodings(_alias_names)?|mime_names)|anguage)|get_info)(?=\s*\()
566
718
  - name: support.function.mcrypt.php
567
- match: (?i)\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(cb|nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt))|list_(algorithms|modes)|ge(neric(_(init|deinit))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\b(?=\s*\()
719
+ match: (?i)\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(cb|nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt))|list_(algorithms|modes)|ge(neric(_(init|deinit))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)(?=\s*\()
568
720
  - name: support.function.md5.php
569
- match: (?i)\bmd5(_file)?\b(?=\s*\()
721
+ match: (?i)\bmd5(_file)?(?=\s*\()
570
722
  - name: support.function.metaphone.php
571
- match: (?i)\bmetaphone\b(?=\s*\()
723
+ match: (?i)\bmetaphone(?=\s*\()
572
724
  - name: support.function.mhash.php
573
- match: (?i)\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\b(?=\s*\()
725
+ match: (?i)\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?(?=\s*\()
574
726
  - name: support.function.microtime.php
575
- match: (?i)\b(get(timeofday|rusage)|microtime)\b(?=\s*\()
727
+ match: (?i)\b(get(timeofday|rusage)|microtime)(?=\s*\()
576
728
  - name: support.function.mime_magic.php
577
- match: (?i)\bmime_content_type\b(?=\s*\()
729
+ match: (?i)\bmime_content_type(?=\s*\()
578
730
  - name: support.function.ming.php
579
- match: (?i)\b(swf(prebuiltclip_init|videostream_init)|ming_(set(scale|cubicthreshold)|use(swfversion|constants)|keypress))\b(?=\s*\()
731
+ match: (?i)\b(swf(prebuiltclip_init|videostream_init)|ming_(set(scale|cubicthreshold)|use(swfversion|constants)|keypress))(?=\s*\()
580
732
  - name: support.function.multi.php
581
- match: (?i)\bcurl_multi_(select|close|in(it|fo_read)|exec|add_handle|getcontent|remove_handle)\b(?=\s*\()
733
+ match: (?i)\bcurl_multi_(select|close|in(it|fo_read)|exec|add_handle|getcontent|remove_handle)(?=\s*\()
582
734
  - name: support.function.mysqli_api.php
583
- match: (?i)\b(s(sl_set|t(ore_result|at|mt(_init)?)|e(nd_long_data|t_(opt|local_infile_(handler|default))|lect_db))|c(ha(nge_user|racter_set_name)|ommit|lient_encoding)|n(um_rows|ext_result)|init|thread_safe|options|d(ump_debug_info|ebug|ata_seek)|use_result|e(scape_string|xecute)|p(ing|repare)|kill|f(ield_(seek|count)|etch(_(field(s|_direct)?|row))?|ree_result)|a(ttr_(set|get)|utocommit)|get_(server_info|client_info)|r(ollback|e(s(ult_metadata|et)|al_(connect|escape_string|query)))|bind_(param|result)|m(ysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data|qlstate)|num_rows|close|in(sert_id|it)|data_seek|p(aram_count|repare)|e(rr(no|or)|xecute)|f(ield_count|etch|ree_result)|a(ttr_(set|get)|ffected_rows)|res(ult_metadata|et)|bind_(param|result)))|e(nd_long_data|t_(opt|local_infile_(handler|default))|lect_db)|qlstate)|n(um_(fields|rows)|ext_result)|c(ha(nge_user|racter_set_name)|ommit|l(ient_encoding|ose))|thread_(safe|id)|in(sert_id|it|fo)|options|d(ump_debug_info|ebug|ata_seek)|use_result|p(ing|aram_count|repare)|e(scape_string|rr(no|or)|xecute)|kill|f(ield_(seek|count|tell)|etch(_(field(s|_direct)?|lengths|row))?|ree_result)|warning_count|a(utocommit|ffected_rows)|r(ollback|eal_(connect|escape_string|query))|get_(server_(info|version)|host_info|client_(info|version)|proto_info|metadata)|bind_(param|result)|more_results)|ore_results))\b(?=\s*\()
735
+ match: (?i)\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data|qlstate)|num_rows|close|in(sert_id|it)|data_seek|p(aram_count|repare)|e(rr(no|or)|xecute)|f(ield_count|etch|ree_result)|a(ttr_(set|get)|ffected_rows)|res(ult_metadata|et)|bind_(param|result)))|e(t_local_infile_(handler|default)|lect_db)|qlstate)|n(um_(fields|rows)|ext_result)|c(ha(nge_user|racter_set_name)|ommit|lose)|thread_(safe|id)|in(sert_id|it|fo)|options|d(ump_debug_info|ebug|ata_seek)|use_result|p(ing|repare)|err(no|or)|kill|f(ield_(seek|count|tell)|etch_(field(s|_direct)?|lengths|row)|ree_result)|warning_count|a(utocommit|ffected_rows)|r(ollback|eal_(connect|escape_string|query))|get_(server_(info|version)|host_info|client_(info|version)|proto_info)|more_results)(?=\s*\()
584
736
  - name: support.function.mysqli_embedded.php
585
- match: (?i)\b(embedded_server_(start|end)|mysqli_embedded_server_(start|end))\b(?=\s*\()
737
+ match: (?i)\bmysqli_embedded_server_(start|end)(?=\s*\()
586
738
  - name: support.function.mysqli_nonapi.php
587
- match: (?i)\b(set_charset|connect|query|fetch_(object|a(ssoc|rray))|get_(charset|warnings)|m(ysqli(_(s(tmt_get_warnings|et_charset)|connect(_err(no|or))?|query|fetch_(object|a(ssoc|rray))|get_(charset|warnings)|multi_query))?|ulti_query))\b(?=\s*\()
739
+ match: (?i)\bmysqli_(s(tmt_get_warnings|et_charset)|connect(_err(no|or))?|query|fetch_(object|a(ssoc|rray))|get_(charset|warnings)|multi_query)(?=\s*\()
588
740
  - name: support.function.mysqli_repl.php
589
- match: (?i)\b(slave_query|disable_r(eads_from_master|pl_parse)|enable_r(pl_parse|eads_from_master)|rpl_(p(arse_enabled|robe)|query_type)|m(ysqli_(s(end_query|lave_query)|disable_r(pl_parse|eads_from_master)|enable_r(pl_parse|eads_from_master)|rpl_(p(arse_enabled|robe)|query_type)|master_query)|aster_query))\b(?=\s*\()
741
+ match: (?i)\bmysqli_(s(end_query|lave_query)|disable_r(pl_parse|eads_from_master)|enable_r(pl_parse|eads_from_master)|rpl_(p(arse_enabled|robe)|query_type)|master_query)(?=\s*\()
590
742
  - name: support.function.mysqli_report.php
591
- match: (?i)\bmysqli_report\b(?=\s*\()
743
+ match: (?i)\bmysqli_report(?=\s*\()
592
744
  - name: support.function.namednodemap.php
593
- match: (?i)\b(setNamedItem(NS)?|dom_namednodemap_(set_named_item(_ns)?|item|remove_named_item(_ns)?|get_named_item(_ns)?)|getNamedItem(NS)?|removeNamedItem(NS)?)\b(?=\s*\()
745
+ match: (?i)\bdom_namednodemap_(set_named_item(_ns)?|item|remove_named_item(_ns)?|get_named_item(_ns)?)(?=\s*\()
594
746
  - name: support.function.namelist.php
595
- match: (?i)\b(dom_namelist_get_name(space_uri)?|getName(spaceURI)?)\b(?=\s*\()
747
+ match: (?i)\bdom_namelist_get_name(space_uri)?(?=\s*\()
596
748
  - name: support.function.ncurses_functions.php
597
- match: (?i)\bncurses_(s(how_panel|cr(_(set|init|dump|restore)|l)|ta(nd(out|end)|rt_color)|lk_(set|noutrefresh|c(olor|lear)|init|touch|attr(set|o(n|ff))?|re(store|fresh))|avetty)|h(ide_panel|line|a(s_(colors|i(c|l)|key)|lfdelay))|n(o(nl|cbreak|echo|qiflush|raw)|ew(_panel|pad|win)|apms|l)|c(olor_(set|content)|urs_set|l(ear|rto(eol|bot))|an_change_color|break)|t(ypeahead|imeout|op_panel|erm(name|attrs))|i(sendwin|n(s(str|ch|tr|delln|ertln)|ch|it(_(color|pair))?))|d(oupdate|e(f(ine_key|_(shell_mode|prog_mode))|l(ch|_panel|eteln|ay_output|win)))|u(se_(default_colors|e(nv|xtended_names))|nget(ch|mouse)|pdate_panels)|p(noutrefresh|utp|a(nel_(window|above|below)|ir_content)|refresh)|e(cho(char)?|nd|rase(char)?)|v(idattr|line)|k(illchar|ey(ok|pad))|qiflush|f(ilter|l(ushinp|ash))|longname|w(stand(out|end)|hline|noutrefresh|c(olor_set|lear)|erase|vline|a(ttr(set|o(n|ff))|dd(str|ch))|getch|refresh|mo(use_trafo|ve)|border)|a(ssume_default_colors|ttr(set|o(n|ff))|dd(str|nstr|ch(str|nstr)?))|r(e(set(ty|_(shell_mode|prog_mode))|place_panel|fresh)|aw)|get(yx|ch|m(ouse|axyx))|b(o(ttom_panel|rder)|eep|kgd(set)?|audrate)|m(o(use(interval|_trafo|mask)|ve(_panel)?)|eta|v(hline|cur|inch|delch|vline|waddstr|add(str|nstr|ch(str|nstr)?)|getch)))\b(?=\s*\()
749
+ match: (?i)\bncurses_(s(how_panel|cr(_(set|init|dump|restore)|l)|ta(nd(out|end)|rt_color)|lk_(set|noutrefresh|c(olor|lear)|init|touch|attr(set|o(n|ff))?|re(store|fresh))|avetty)|h(ide_panel|line|a(s_(colors|i(c|l)|key)|lfdelay))|n(o(nl|cbreak|echo|qiflush|raw)|ew(_panel|pad|win)|apms|l)|c(olor_(set|content)|urs_set|l(ear|rto(eol|bot))|an_change_color|break)|t(ypeahead|imeout|op_panel|erm(name|attrs))|i(sendwin|n(s(str|ch|tr|delln|ertln)|ch|it(_(color|pair))?))|d(oupdate|e(f(ine_key|_(shell_mode|prog_mode))|l(ch|_panel|eteln|ay_output|win)))|u(se_(default_colors|e(nv|xtended_names))|nget(ch|mouse)|pdate_panels)|p(noutrefresh|utp|a(nel_(window|above|below)|ir_content)|refresh)|e(cho(char)?|nd|rase(char)?)|v(idattr|line)|k(illchar|ey(ok|pad))|qiflush|f(ilter|l(ushinp|ash))|longname|w(stand(out|end)|hline|noutrefresh|c(olor_set|lear)|erase|vline|a(ttr(set|o(n|ff))|dd(str|ch))|getch|refresh|mo(use_trafo|ve)|border)|a(ssume_default_colors|ttr(set|o(n|ff))|dd(str|nstr|ch(str|nstr)?))|r(e(set(ty|_(shell_mode|prog_mode))|place_panel|fresh)|aw)|get(yx|ch|m(ouse|axyx))|b(o(ttom_panel|rder)|eep|kgd(set)?|audrate)|m(o(use(interval|_trafo|mask)|ve(_panel)?)|eta|v(hline|cur|inch|delch|vline|waddstr|add(str|nstr|ch(str|nstr)?)|getch)))(?=\s*\()
598
750
  - name: support.function.node.php
599
- match: (?i)\b(has(ChildNodes|Attributes)|setUserData|c(ompareDocumentPosition|loneNode)|normalize|i(s(S(upported|ameNode)|DefaultNamespace|EqualNode)|nsertBefore)|dom_node_(set_user_data|has_(child_nodes|attributes)|normalize|c(ompare_document_position|lone_node)|i(s_(s(upported|ame_node)|default_namespace|equal_node)|nsert_before)|lookup_(namespace_uri|prefix)|append_child|get_(user_data|feature)|re(place_child|move_child))|lookup(NamespaceUri|Prefix)|appendChild|re(placeChild|moveChild)|get(UserData|Feature))\b(?=\s*\()
751
+ match: (?i)\bdom_node_(set_user_data|has_(child_nodes|attributes)|normalize|c(ompare_document_position|lone_node)|i(s_(s(upported|ame_node)|default_namespace|equal_node)|nsert_before)|lookup_(namespace_uri|prefix)|append_child|get_(user_data|feature)|re(place_child|move_child))(?=\s*\()
600
752
  - name: support.function.nodelist.php
601
- match: (?i)\b(item|dom_nodelist_item)\b(?=\s*\()
753
+ match: (?i)\bdom_nodelist_item(?=\s*\()
602
754
  - name: support.function.nsapi.php
603
- match: (?i)\b(nsapi_(virtual|re(sponse_headers|quest_headers))|virtual|apache_re(sponse_headers|quest_headers)|getallheaders)\b(?=\s*\()
755
+ match: (?i)\bnsapi_(virtual|re(sponse_headers|quest_headers))(?=\s*\()
604
756
  - name: support.function.oci8_interface.php
605
- match: (?i)\b(s(ize|e(tbuffering|ek)|ave(file)?)|import|t(ell|r(im|uncate))|oci(s(tatementtype|e(t(prefetch|bufferinglob)|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|isnull|type(raw)?|precision)|l(size|trim|a(ssignelem|ppend)|getelem|max))|mmit)|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_prefetch|rver_version))|c(o(nnect|llection_(size|trim|element_(assign|get)|a(ssign|ppend)|max)|mmit)|lose|ancel)|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|is_null|type(_raw)?|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|c(ollection|ursor)|descriptor))|lob_(s(ize|eek|ave)|c(opy|lose)|t(ell|runcate)|i(s_equal|mport)|e(of|rase|xport)|flush|append|write(_temporary)?|load|re(wind|ad))|r(ollback|esult)|bind_(array_by_name|by_name))|e(rror|xecute)|p(logon|a(sswordchange|rse))|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|lo(adlob|go(n|ff))|writelobtofile|r(o(wcount|llback)|esult)|getbufferinglob|bindbyname)|e(of|rase|xport)|f(lush|ree)|write(t(ofile|emporary))?|a(ssign(elem)?|ppend)|load|get(elem|buffering)|read|max)\b(?=\s*\()
757
+ match: (?i)\boci(setbufferinglob|_(s(tatement_type|e(t_prefetch|rver_version))|c(o(nnect|llection_(size|trim|element_(assign|get)|a(ssign|ppend)|max)|mmit)|lose|ancel)|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|is_null|type(_raw)?|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|collection|descriptor))|lob_(s(ize|eek|ave)|c(opy|lose)|t(ell|runcate)|i(s_equal|mport)|e(of|rase|xport)|flush|append|write(_temporary)?|load|re(wind|ad))|r(ollback|esult)|bind_(array_by_name|by_name))|fetchinto|getbufferinglob)(?=\s*\()
606
758
  - name: support.function.openssl.php
607
- match: (?i)\bopenssl_(s(ign|eal)|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|open|error_string|p(ublic_(decrypt|encrypt)|k(cs7_(sign|decrypt|encrypt|verify)|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|verify|free_key|get_p(ublickey|rivatekey)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\b(?=\s*\()
759
+ match: (?i)\bopenssl_(s(ign|eal)|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|open|error_string|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|verify|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))(?=\s*\()
608
760
  - name: support.function.output.php
609
- match: (?i)\bo(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|get_(status|c(ontents|lean)|flush|le(ngth|vel))))\b(?=\s*\()
761
+ match: (?i)\bo(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|get_(status|c(ontents|lean)|flush|le(ngth|vel))))(?=\s*\()
610
762
  - name: support.function.pack.php
611
- match: (?i)\b(unpack|pack)\b(?=\s*\()
763
+ match: (?i)\b(unpack|pack)(?=\s*\()
612
764
  - name: support.function.pageinfo.php
613
- match: (?i)\bget(lastmod|my(inode|uid|pid|gid))\b(?=\s*\()
765
+ match: (?i)\bget(lastmod|my(inode|uid|pid|gid))(?=\s*\()
614
766
  - name: support.function.pcntl.php
615
- match: (?i)\bpcntl_(s(ignal|etpriority)|exec|fork|w(stopsig|termsig|if(s(ignaled|topped)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\b(?=\s*\()
767
+ match: (?i)\bpcntl_(s(ignal|etpriority)|exec|fork|w(stopsig|termsig|if(s(ignaled|topped)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)(?=\s*\()
616
768
  - name: support.function.pdo.php
617
- match: (?i)\bpdo_drivers\b(?=\s*\()
769
+ match: (?i)\bpdo_drivers(?=\s*\()
618
770
  - name: support.function.pdo_dbh.php
619
- match: (?i)\bpdo_drivers\b(?=\s*\()
771
+ match: (?i)\bpdo_drivers(?=\s*\()
620
772
  - name: support.function.pgsql.php
621
- match: (?i)\bpg_(se(nd_(execute|prepare|query(_params)?)|t(clientencoding|_(client_encoding|error_verbosity))|lect)|host|num(_(fields|rows)|fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|ancel_query|l(ient(_encoding|encoding)|ose)|mdtuples)|insert|t(ty|ra(nsaction_status|ce))|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|e(scape_(string|bytea)|nd_copy|rrormessage|xec(ute)?)|p(connect|ing|ort|ut_line|arameter_status|repare)|version|f(ield(size|n(um|ame)|type|isnull|_(size|n(um|ame)|is_null|t(ype(_oid)?|able)|prtlen)|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree(_result|result))|query(_params)?|affected_rows|l(o(c(lose|reate)|import|open|unlink|_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|export|write|read(all)?)|ast_(notice|oid|error))|get(_(notify|pid|result)|lastoid)|result(_(s(tatus|eek)|error(_field)?))?|meta_data)\b(?=\s*\()
773
+ match: (?i)\bpg_(se(nd_(execute|prepare|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|ancel_query|l(ient_encoding|ose))|insert|t(ty|ra(nsaction_status|ce))|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|e(scape_(string|bytea)|nd_copy|xecute)|p(connect|ing|ort|ut_line|arameter_status|repare)|version|f(ield_(size|n(um|ame)|is_null|t(ype(_oid)?|able)|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|query(_params)?|affected_rows|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|get_(notify|pid|result)|result_(s(tatus|eek)|error(_field)?)|meta_data)(?=\s*\()
622
774
  - name: support.function.php_apache.php
623
- match: (?i)\b(headers_(in|out)|s(ome_auth_required|e(t_(etag|last_modified)|rver_port)|atisfies)|is_initial_req|discard_request_body|update_mtime|err_headers_out|virtual|lo(okup_(uri|file)|g_error)|a(uth_(name|type)|pache_(setenv|note|child_terminate|lookup_uri|get_(version|modules)|re(s(et_timeout|ponse_headers)|quest_(s(ome_auth_required|ub_req_(lookup_(uri|file)|method_uri)|e(t_(etag|last_modified)|rver_port)|atisfies)|headers(_(in|out))?|is_initial_req|discard_request_body|update_mtime|err_headers_out|log_error|auth_(name|type)|r(un|emote_host)|meets_conditions))))|r(un|emote_host)|getallheaders|me(thod_uri|ets_conditions))\b(?=\s*\()
775
+ match: (?i)\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|get_(version|modules)|re(s(et_timeout|ponse_headers)|quest_(s(ome_auth_required|ub_req_(lookup_(uri|file)|method_uri)|e(t_(etag|last_modified)|rver_port)|atisfies)|headers(_(in|out))?|is_initial_req|discard_request_body|update_mtime|err_headers_out|log_error|auth_(name|type)|r(un|emote_host)|meets_conditions)))|getallheaders)(?=\s*\()
624
776
  - name: support.function.php_date.php
625
- match: (?i)\b(str(totime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|identifiers_list|transitions_get|o(pen|ffset_get)|abbreviations_list))?|idate|date(_(sun(set|_info|rise)|create|isodate_set|time(zone_(set|get)|_set)|d(efault_timezone_(set|get)|ate_set)|offset_get|parse|format|modify))?|localtime|g(etdate|m(strftime|date|mktime))|mktime)\b(?=\s*\()
777
+ match: (?i)\b(str(totime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|identifiers_list|transitions_get|o(pen|ffset_get)|abbreviations_list))?|idate|date(_(sun(set|_info|rise)|create|isodate_set|time(zone_(set|get)|_set)|d(efault_timezone_(set|get)|ate_set)|offset_get|parse|format|modify))?|localtime|g(etdate|m(strftime|date|mktime))|mktime)(?=\s*\()
626
778
  - name: support.function.php_dom.php
627
- match: (?i)\bdom_import_simplexml\b(?=\s*\()
779
+ match: (?i)\bdom_import_simplexml(?=\s*\()
628
780
  - name: support.function.php_fbsql.php
629
- match: (?i)\bfbsql(_(hostname|s(t(op_db|art_db)|e(t_(characterset|transaction|password|lob_mode)|lect_db))|n(um_(fields|rows)|ext_result)|c(hange_user|o(nnect|mmit)|lo(se|b_size)|reate_(clob|db|blob))|table(name|_name)|insert_id|d(ata(_seek|base(_password)?)|rop_db|b_(status|query))|username|err(no|or)|p(connect|assword)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|warnings|list_(tables|dbs|fields)|a(utocommit|ffected_rows)|get_autostart_info|r(o(ws_fetched|llback)|e(sult|ad_(clob|blob)))|blob_size))?\b(?=\s*\()
781
+ match: (?i)\bfbsql_(hostname|s(t(op_db|art_db)|e(t_(characterset|transaction|password|lob_mode)|lect_db))|n(um_(fields|rows)|ext_result)|c(hange_user|o(nnect|mmit)|lo(se|b_size)|reate_(clob|db|blob))|table_name|insert_id|d(ata(_seek|base(_password)?)|rop_db|b_(status|query))|username|err(no|or)|p(connect|assword)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|warnings|list_(tables|dbs|fields)|a(utocommit|ffected_rows)|get_autostart_info|r(o(ws_fetched|llback)|e(sult|ad_(clob|blob)))|blob_size)(?=\s*\()
630
782
  - name: support.function.php_ftp.php
631
- match: (?i)\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|dup|onnect|lose)|delete|exec|p(ut|asv|wd)|quit|f(put|get)|alloc|login|get(_option)?|r(ename|aw(list)?|mdir)|m(dtm|kdir))\b(?=\s*\()
783
+ match: (?i)\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|dup|onnect|lose)|delete|exec|p(ut|asv|wd)|f(put|get)|alloc|login|get(_option)?|r(ename|aw(list)?|mdir)|m(dtm|kdir))(?=\s*\()
632
784
  - name: support.function.php_functions.php
633
- match: (?i)\b(virtual|apache_(setenv|note|get(_(version|modules)|env)|response_headers)|getallheaders)\b(?=\s*\()
785
+ match: (?i)\b(virtual|apache_(setenv|note|get(_(version|modules)|env)|response_headers)|getallheaders)(?=\s*\()
634
786
  - name: support.function.php_imap.php
635
- match: (?i)\bimap_(header(s|info)?|s(can|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|num_(recent|msg)|t(hread|imeout)|8bit|delete(mailbox)?|open|u(n(subscribe|delete)|id|tf(7_(decode|encode)|8))|e(rrors|xpunge)|ping|qprint|fetch(header|structure|text|_overview|body)|l(sub|ist(subscribed|mailbox)?|ast_error)|a(ppend|lerts)|get(subscribed|_quota(root)?|acl|mailboxes)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\b(?=\s*\()
787
+ match: (?i)\bimap_(header(s|info)|s(can|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|c(heck|l(ose|earflag_full)|reatemailbox)|num_(recent|msg)|t(hread|imeout)|8bit|delete(mailbox)?|open|u(n(subscribe|delete)|id|tf(7_(decode|encode)|8))|e(rrors|xpunge)|ping|qprint|fetch(header|structure|_overview|body)|l(sub|ist|ast_error)|a(ppend|lerts)|get(subscribed|_quota(root)?|acl|mailboxes)|r(e(namemailbox|open)|fc822_(parse_(headers|adrlist)|write_address))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))(?=\s*\()
636
788
  - name: support.function.php_mbregex.php
637
- match: (?i)\bmb(split|_(split|ereg(i(_replace)?|_(search(_(setpos|init|pos|get(pos|regs)|regs))?|replace|match))?|regex_(set_options|encoding))|ereg(i(_replace)?|_(search(_(setpos|init|pos|get(pos|regs)|regs))?|replace|match))?|regex_encoding)\b(?=\s*\()
789
+ match: (?i)\bmb_(split|ereg(i(_replace)?|_(search(_(setpos|init|pos|get(pos|regs)|regs))?|replace|match))?|regex_(set_options|encoding))(?=\s*\()
638
790
  - name: support.function.php_milter.php
639
- match: (?i)\bsmfi_(set(timeout|flags|reply)|chgheader|delrcpt|add(header|rcpt)|replacebody|getsymval)\b(?=\s*\()
791
+ match: (?i)\bsmfi_(set(timeout|flags|reply)|chgheader|delrcpt|add(header|rcpt)|replacebody|getsymval)(?=\s*\()
640
792
  - name: support.function.php_msql.php
641
- match: (?i)\bmsql(_(select(db|_db)|num(_(fields|rows)|fields|rows)|c(onnect|lose|reate(db|_db))|tablename|d(ata_seek|rop(db|_db)|b(name|_query))|error|pconnect|f(ield(name|t(ype|able)|_(seek|name|t(ype|able)|flags|len)|flags|len)|etch_(object|field|array|row)|ree(_result|result))|query|affected_rows|list(tables|dbs|_(tables|dbs|fields)|fields)|result))?\b(?=\s*\()
793
+ match: (?i)\bmsql_(select_db|num_(fields|rows)|c(onnect|lose|reate_db)|d(ata_seek|rop_db|b_query)|error|pconnect|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|array|row)|ree_result)|query|affected_rows|list_(tables|dbs|fields)|result)(?=\s*\()
642
794
  - name: support.function.php_mssql.php
643
- match: (?i)\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|execute|pconnect|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|g(uid_string|et_last_message)|r(ows_affected|esult)|bind|min_(error_severity|message_severity))\b(?=\s*\()
795
+ match: (?i)\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|execute|pconnect|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|g(uid_string|et_last_message)|r(ows_affected|esult)|bind|min_(error_severity|message_severity))(?=\s*\()
644
796
  - name: support.function.php_mysql.php
645
- match: (?i)\bmysql(_(s(tat|elect(db|_db))|num(_(fields|rows)|fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|able(name|_name))|in(sert_id|fo)|d(ata_seek|rop_db|b(name|_(name|query)))|unbuffered_query|e(scape_string|rr(no|or))|p(connect|ing)|f(ield(name|t(ype|able)|_(seek|name|t(ype|able)|flags|len)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree(_result|result))|query|affected_rows|list(dbs|_(tables|dbs|processes|fields)|fields)|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info)))?\b(?=\s*\()
797
+ match: (?i)\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|thread_id|in(sert_id|fo)|d(ata_seek|rop_db|b_query)|unbuffered_query|e(scape_string|rr(no|or))|p(connect|ing)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|affected_rows|list_(tables|dbs|processes|fields)|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))(?=\s*\()
646
798
  - name: support.function.php_odbc.php
647
- match: (?i)\b(solid_fetch_prev|odbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|e(rror(msg)?|xec(ute)?)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|autocommit|longreadlen|gettypeinfo|r(ollback|esult(_all)?)|binmode))\b(?=\s*\()
799
+ match: (?i)\b(solid_fetch_prev|odbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|data_source|e(rror(msg)?|xec(ute)?)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|f(ield_(scale|n(um|ame)|type|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|autocommit|longreadlen|gettypeinfo|r(ollback|esult(_all)?)|binmode))(?=\s*\()
648
800
  - name: support.function.php_pcre.php
649
- match: (?i)\bpreg_(split|quote|last_error|grep|replace(_callback)?|match(_all)?)\b(?=\s*\()
801
+ match: (?i)\bpreg_(split|quote|last_error|grep|replace(_callback)?|match(_all)?)(?=\s*\()
650
802
  - name: support.function.php_spl.php
651
- match: (?i)\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|parents))\b(?=\s*\()
803
+ match: (?i)\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|parents))(?=\s*\()
652
804
  - name: support.function.php_sybase_ct.php
653
- match: (?i)\b(sybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|query|affected_rows|result|get_last_message|min_(server_severity|client_severity))|mssql_(se(t_message_handler|lect_db)|c(onnect|lose)|num_(fields|rows)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|get_last_message|result|min_(server_severity|client_severity)))\b(?=\s*\()
805
+ match: (?i)\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|query|affected_rows|result|get_last_message|min_(server_severity|client_severity))(?=\s*\()
654
806
  - name: support.function.php_sybase_db.php
655
- match: (?i)\b(sybase_(select_db|num_(fields|rows)|c(onnect|lose)|data_seek|pconnect|f(ield_seek|etch_(object|field|array|row)|ree_result)|query|affected_rows|result|get_last_message|min_(error_severity|message_severity))|mssql_min_(error_severity|message_severity))\b(?=\s*\()
807
+ match: (?i)\bsybase_(select_db|num_(fields|rows)|c(onnect|lose)|data_seek|pconnect|f(ield_seek|etch_(object|field|array|row)|ree_result)|query|affected_rows|result|get_last_message|min_(error_severity|message_severity))(?=\s*\()
656
808
  - name: support.function.php_xmlwriter.php
657
- match: (?i)\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\b(?=\s*\()
809
+ match: (?i)\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))(?=\s*\()
658
810
  - name: support.function.php_zip.php
659
- match: (?i)\b(s(tat(Name|Index)|et(Comment(Name|Index)|ArchiveComment))|c(lose|reateEmptyDir)|delete(Name|Index)|open|zip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)|unchange(Name|Index|All)|locateName|addF(ile|romString)|rename(Name|Index)|get(Stream|Comment(Name|Index)|NameIndex|From(Name|Index)|ArchiveComment))\b(?=\s*\()
811
+ match: (?i)\b(s(tat(Name|Index)|et(Comment(Name|Index)|ArchiveComment))|c(lose|reateEmptyDir)|delete(Name|Index)|open|zip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)|unchange(Name|Index|All)|locateName|addF(ile|romString)|rename(Name|Index)|get(Stream|Comment(Name|Index)|NameIndex|From(Name|Index)|ArchiveComment))(?=\s*\()
660
812
  - name: support.function.posix.php
661
- match: (?i)\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|i(satty|nitgroups)|t(tyname|imes)|uname|errno|kill|access|get(sid|cwd|_last_error|uid|e(uid|gid)|p(id|pid|w(nam|uid)|g(id|rp))|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\b(?=\s*\()
813
+ match: (?i)\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|i(satty|nitgroups)|t(tyname|imes)|uname|kill|access|get(sid|cwd|_last_error|uid|e(uid|gid)|p(id|pid|w(nam|uid)|g(id|rp))|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))(?=\s*\()
662
814
  - name: support.function.proc_open.php
663
- match: (?i)\bproc_(close|terminate|open|get_status)\b(?=\s*\()
815
+ match: (?i)\bproc_(close|terminate|open|get_status)(?=\s*\()
664
816
  - name: support.function.pspell.php
665
- match: (?i)\bpspell_(s(tore_replacement|uggest|ave_wordlist)|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|new(_(config|personal))?|add_to_(session|personal))\b(?=\s*\()
817
+ match: (?i)\bpspell_(s(tore_replacement|uggest|ave_wordlist)|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|new(_(config|personal))?|add_to_(session|personal))(?=\s*\()
666
818
  - name: support.function.quot_print.php
667
- match: (?i)\bquoted_printable_decode\b(?=\s*\()
819
+ match: (?i)\bquoted_printable_decode(?=\s*\()
668
820
  - name: support.function.rand.php
669
- match: (?i)\b(srand|getrandmax|rand|mt_(srand|getrandmax|rand))\b(?=\s*\()
821
+ match: (?i)\b(srand|getrandmax|rand|mt_(srand|getrandmax|rand))(?=\s*\()
670
822
  - name: support.function.readline.php
671
- match: (?i)\breadline(_(c(ompletion_function|allback_(handler_(install|remove)|read_char)|lear_history)|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\b(?=\s*\()
823
+ match: (?i)\breadline(_(c(ompletion_function|allback_(handler_(install|remove)|read_char)|lear_history)|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?(?=\s*\()
672
824
  - name: support.function.recode.php
673
- match: (?i)\brecode(_(string|file))?\b(?=\s*\()
825
+ match: (?i)\brecode_(string|file)(?=\s*\()
674
826
  - name: support.function.reg.php
675
- match: (?i)\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?|msql_regcase)\b(?=\s*\()
827
+ match: (?i)\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)(?=\s*\()
676
828
  - name: support.function.session.php
677
- match: (?i)\bsession_(s(tart|et_(save_handler|cookie_params)|ave_path)|c(ommit|ache_(expire|limiter))|name|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister|enerate_id)|get_cookie_params|module_name)\b(?=\s*\()
829
+ match: (?i)\bsession_(s(tart|et_(save_handler|cookie_params)|ave_path)|cache_(expire|limiter)|name|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister|enerate_id)|get_cookie_params|module_name)(?=\s*\()
678
830
  - name: support.function.sha1.php
679
- match: (?i)\bsha1(_file)?\b(?=\s*\()
831
+ match: (?i)\bsha1(_file)?(?=\s*\()
680
832
  - name: support.function.shmop.php
681
- match: (?i)\bshmop_(size|close|delete|open|write|read)\b(?=\s*\()
833
+ match: (?i)\bshmop_(size|close|delete|open|write|read)(?=\s*\()
682
834
  - name: support.function.simplexml.php
683
- match: (?i)\bsimplexml_(import_dom|load_(string|file))\b(?=\s*\()
835
+ match: (?i)\bsimplexml_(import_dom|load_(string|file))(?=\s*\()
684
836
  - name: support.function.skeleton.php
685
- match: (?i)\bconfirm_extname_compiled\b(?=\s*\()
837
+ match: (?i)\bconfirm_extname_compiled(?=\s*\()
686
838
  - name: support.function.snmp.php
687
- match: (?i)\b(snmp(set|2_(set|walk|real_walk|get(next)?)|3_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|walk(oid)?|realwalk|get(next)?)|php_snmpv3)\b(?=\s*\()
839
+ match: (?i)\b(snmp(set|2_(set|walk|real_walk|get(next)?)|3_(set|walk|real_walk|get(next)?)|_(set_(oid_output_format|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|walk|realwalk|get(next)?)|php_snmpv3)(?=\s*\()
688
840
  - name: support.function.sockets.php
689
- match: (?i)\bsocket_(s(hutdown|trerror|e(nd(to)?|t(opt|_(nonblock|option|block))|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|write|l(isten|ast_error)|accept|get(sockname|opt|_option|peername)|re(cv(from)?|ad)|bind)\b(?=\s*\()
841
+ match: (?i)\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|write|l(isten|ast_error)|accept|get(sockname|_option|peername)|re(cv(from)?|ad)|bind)(?=\s*\()
690
842
  - name: support.function.soundex.php
691
- match: (?i)\bsoundex\b(?=\s*\()
843
+ match: (?i)\bsoundex(?=\s*\()
692
844
  - name: support.function.spl_iterators.php
693
- match: (?i)\biterator_(count|to_array|apply)\b(?=\s*\()
845
+ match: (?i)\biterator_(count|to_array|apply)(?=\s*\()
694
846
  - name: support.function.sqlite.php
695
- match: (?i)\bsqlite_(has_(prev|more)|s(ingle_query|eek)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|e(scape_string|rror_string|xec)|p(open|rev)|key|valid|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\b(?=\s*\()
847
+ match: (?i)\bsqlite_(has_prev|s(ingle_query|eek)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|e(scape_string|rror_string|xec)|p(open|rev)|key|valid|query|f(ield_name|etch_(single|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)(?=\s*\()
696
848
  - name: support.function.streamsfuncs.php
697
- match: (?i)\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|enable_crypto|pair|accept|recvfrom|get_name)|e(t_(timeout|write_buffer|blocking)|lect))|co(ntext_(set_(option|params)|create|get_(default|options))|py_to_stream)|filter_(prepend|append|remove)|get_(contents|transports|line|wrappers|meta_data))|ocket_(set_(timeout|blocking)|get_status)|et_file_buffer)\b(?=\s*\()
849
+ match: (?i)\bstream_(s(ocket_(s(hutdown|e(ndto|rver))|client|enable_crypto|pair|accept|recvfrom|get_name)|e(t_(timeout|write_buffer|blocking)|lect))|co(ntext_(set_(option|params)|create|get_(default|options))|py_to_stream)|filter_(prepend|append|remove)|get_(contents|transports|line|wrappers|meta_data))(?=\s*\()
698
850
  - name: support.function.string.php
699
- match: (?i)\b(hebrev(c)?|s(scanf|imilar_text|tr(s(tr|pn)|natc(asecmp|mp)|c(hr|spn|oll)|i(str|p(slashes|cslashes|os|_tags))|t(o(upper|k|lower)|r)|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace)))|p(os|brk)|r(chr|ipos|ev|pos))|ubstr(_(co(unt|mpare)|replace))?|etlocale)|c(h(op|unk_split|r)|ount_chars)|nl(2br|_langinfo)|implode|trim|ord|dirname|uc(first|words)|join|pa(thinfo|rse_str)|explode|quotemeta|add(slashes|cslashes)|wordwrap|l(trim|ocaleconv)|rtrim|money_format|b(in2hex|asename))\b(?=\s*\()
851
+ match: (?i)\b(hebrev(c)?|s(scanf|imilar_text|tr(s(tr|pn)|natc(asecmp|mp)|c(hr|spn|oll)|i(str|p(slashes|cslashes|os|_tags))|t(o(upper|k|lower)|r)|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace)))|p(os|brk)|r(chr|ipos|ev|pos))|ubstr(_(co(unt|mpare)|replace))?|etlocale)|c(h(unk_split|r)|ount_chars)|nl(2br|_langinfo)|implode|trim|ord|dirname|uc(first|words)|join|pa(thinfo|rse_str)|explode|quotemeta|add(slashes|cslashes)|wordwrap|l(trim|ocaleconv)|rtrim|money_format|b(in2hex|asename))(?=\s*\()
700
852
  - name: support.function.string_extend.php
701
- match: (?i)\b(dom_string_extend_find_offset(16|32)|findOffset(16|32))\b(?=\s*\()
853
+ match: (?i)\bdom_string_extend_find_offset(16|32)(?=\s*\()
702
854
  - name: support.function.syslog.php
703
- match: (?i)\b(syslog|closelog|openlog|define_syslog_variables)\b(?=\s*\()
855
+ match: (?i)\b(syslog|closelog|openlog|define_syslog_variables)(?=\s*\()
704
856
  - name: support.function.sysvmsg.php
705
- match: (?i)\bmsg_(s(tat_queue|e(nd|t_queue))|re(ceive|move_queue)|get_queue)\b(?=\s*\()
857
+ match: (?i)\bmsg_(s(tat_queue|e(nd|t_queue))|re(ceive|move_queue)|get_queue)(?=\s*\()
706
858
  - name: support.function.sysvsem.php
707
- match: (?i)\bsem_(acquire|re(lease|move)|get)\b(?=\s*\()
859
+ match: (?i)\bsem_(acquire|re(lease|move)|get)(?=\s*\()
708
860
  - name: support.function.sysvshm.php
709
- match: (?i)\bshm_(detach|put_var|attach|get_var|remove(_var)?)\b(?=\s*\()
861
+ match: (?i)\bshm_(detach|put_var|attach|get_var|remove(_var)?)(?=\s*\()
710
862
  - name: support.function.text.php
711
- match: (?i)\b(splitText|is(ElementContentWhitespace|WhitespaceInElementContent)|dom_text_(split_text|is_whitespace_in_element_content|replace_whole_text)|replaceWholeText)\b(?=\s*\()
863
+ match: (?i)\bdom_text_(split_text|is_whitespace_in_element_content|replace_whole_text)(?=\s*\()
712
864
  - name: support.function.tidy.php
713
- match: (?i)\btidy_(c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|error_count|parse_(string|file)|access_count|warning_count|repair_(string|file)|get(opt|_(h(tml(_ver)?|ead)|status|config|o(utput|pt_doc)|error_buffer|r(oot|elease)|body)))\b(?=\s*\()
865
+ match: (?i)\btidy_(c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|error_count|parse_(string|file)|access_count|warning_count|repair_(string|file)|get(opt|_(h(tml(_ver)?|ead)|status|config|o(utput|pt_doc)|error_buffer|r(oot|elease)|body)))(?=\s*\()
714
866
  - name: support.function.tokenizer.php
715
- match: (?i)\btoken_(name|get_all)\b(?=\s*\()
867
+ match: (?i)\btoken_(name|get_all)(?=\s*\()
716
868
  - name: support.function.type.php
717
- match: (?i)\b(s(trval|ettype)|i(s_(s(calar|tring)|callable|nu(ll|meric)|int(eger)?|double|object|float|array|long|re(source|al)|bool)|ntval)|doubleval|floatval|gettype)\b(?=\s*\()
869
+ match: (?i)\b(s(trval|ettype)|i(s_(s(calar|tring)|callable|nu(ll|meric)|object|float|array|long|resource|bool)|ntval)|floatval|gettype)(?=\s*\()
718
870
  - name: support.function.uniqid.php
719
- match: (?i)\buniqid\b(?=\s*\()
871
+ match: (?i)\buniqid(?=\s*\()
720
872
  - name: support.function.url.php
721
- match: (?i)\b(url(decode|encode)|parse_url|get_headers|rawurl(decode|encode))\b(?=\s*\()
873
+ match: (?i)\b(url(decode|encode)|parse_url|get_headers|rawurl(decode|encode))(?=\s*\()
722
874
  - name: support.function.user_filters.php
723
- match: (?i)\bstream_(filter_register|get_filters|bucket_(new|prepend|append|make_writeable))\b(?=\s*\()
875
+ match: (?i)\bstream_(filter_register|get_filters|bucket_(new|prepend|append|make_writeable))(?=\s*\()
724
876
  - name: support.function.userdatahandler.php
725
- match: (?i)\b(handle|dom_userdatahandler_handle)\b(?=\s*\()
877
+ match: (?i)\bdom_userdatahandler_handle(?=\s*\()
726
878
  - name: support.function.userspace.php
727
- match: (?i)\bstream_(wrapper_(unregister|re(store|gister))|register_wrapper)\b(?=\s*\()
879
+ match: (?i)\bstream_wrapper_(unregister|re(store|gister))(?=\s*\()
728
880
  - name: support.function.uuencode.php
729
- match: (?i)\bconvert_uu(decode|encode)\b(?=\s*\()
881
+ match: (?i)\bconvert_uu(decode|encode)(?=\s*\()
730
882
  - name: support.function.var.php
731
- match: (?i)\b(serialize|debug_zval_dump|unserialize|var_(dump|export)|memory_get_(usage|peak_usage))\b(?=\s*\()
883
+ match: (?i)\b(serialize|debug_zval_dump|unserialize|var_(dump|export)|memory_get_(usage|peak_usage))(?=\s*\()
732
884
  - name: support.function.versioning.php
733
- match: (?i)\bversion_compare\b(?=\s*\()
885
+ match: (?i)\bversion_compare(?=\s*\()
734
886
  - name: support.function.wddx.php
735
- match: (?i)\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\b(?=\s*\()
887
+ match: (?i)\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)(?=\s*\()
736
888
  - name: support.function.xml.php
737
- match: (?i)\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|default_handler|object|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|error_string|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|get_(current_(column_number|line_number|byte_index)|error_code)))\b(?=\s*\()
889
+ match: (?i)\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|default_handler|object|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|error_string|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|get_(current_(column_number|line_number|byte_index)|error_code)))(?=\s*\()
738
890
  - name: support.function.xmlrpc-epi-php.php
739
- match: (?i)\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\b(?=\s*\()
891
+ match: (?i)\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)(?=\s*\()
740
892
  - name: support.function.xpath.php
741
- match: (?i)\b(dom_xpath_(evaluate|query|register_ns)|evaluate|registerNamespace)\b(?=\s*\()
893
+ match: (?i)\bdom_xpath_(evaluate|query|register_ns)(?=\s*\()
742
894
  - name: support.function.xsltprocessor.php
743
- match: (?i)\b(hasExsltSupport|setParameter|transformTo(Xml|Doc|Uri)|importStylesheet|getParameter|re(gisterPHPFunctions|moveParameter)|xsl_xsltprocessor_(has_exslt_support|set_parameter|transform_to_(doc|uri|xml)|import_stylesheet|re(gister_php_functions|move_parameter)|get_parameter))\b(?=\s*\()
895
+ match: (?i)\bxsl_xsltprocessor_(has_exslt_support|set_parameter|transform_to_(doc|uri|xml)|import_stylesheet|re(gister_php_functions|move_parameter)|get_parameter)(?=\s*\()
744
896
  - name: support.function.zlib.php
745
- match: (?i)\b(ob_gzhandler|zlib_get_coding_type|readgzfile|gz(compress|inflate|deflate|open|uncompress|encode|file))\b(?=\s*\()
897
+ match: (?i)\b(ob_gzhandler|zlib_get_coding_type|readgzfile|gz(compress|inflate|deflate|open|uncompress|encode|file))(?=\s*\()
898
+ - name: support.function.alias.php
899
+ match: (?i)\bis_int(eger)?(?=\s*\()
746
900
  - name: support.class.builtin.php
747
- match: (?i)\b(Re(cursive(RegexIterator|CachingIterator|IteratorIterator|DirectoryIterator|FilterIterator|ArrayIterator)|flection(Method|Class|Object|Extension|P(arameter|roperty)|Function)?|gexIterator)|swf(s(hape|ound|prite)|text(field)?|displayitem|f(ill|ont(cha(r)?)?)|action|gradient|mo(vie|rph)|b(itmap|utton))|XMLReader|tidyNode|S(impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|pl(TempFileObject|ObjectStorage|File(Info|Object)))|NoRewindIterator|C(OMPersistHelper|achingIterator)|I(nfiniteIterator|teratorIterator)|D(irectoryIterator|OM(XPath|Node|C(omment|dataSection)|Text|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr))|P(DO(Statement)?|arentIterator)|E(rrorException|mptyIterator|xception)|FilterIterator|LimitIterator|A(p(pendIterator|acheRequest)|rray(Iterator|Object)))\b(?=\s*\()
901
+ match: (?i)\b(Re(cursive(RegexIterator|CachingIterator|IteratorIterator|DirectoryIterator|FilterIterator|ArrayIterator)|flection(Method|Class|Object|Extension|P(arameter|roperty)|Function)?|gexIterator)|s(tdClass|wf(s(hape|ound|prite)|text(field)?|displayitem|f(ill|ont(cha(r)?)?)|action|gradient|mo(vie|rph)|b(itmap|utton)))|XMLReader|tidyNode|S(impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|pl(TempFileObject|ObjectStorage|File(Info|Object)))|NoRewindIterator|C(OMPersistHelper|achingIterator)|I(nfiniteIterator|teratorIterator)|D(irectoryIterator|OM(XPath|Node|C(omment|dataSection)|Text|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr))|P(DO(Statement)?|arentIterator)|E(rrorException|mptyIterator|xception)|FilterIterator|LimitIterator|A(p(pendIterator|acheRequest)|rray(Iterator|Object)))(?=\s*\()
902
+ - name: support.function.construct.php
903
+ match: (?i)\b((print|echo)\b|(isset|unset|e(val|mpty)|list)(?=\s*\())
748
904
  regex-double-quoted:
749
905
  name: string.regexp.double-quoted.php
750
906
  endCaptures:
751
907
  "0":
752
908
  name: punctuation.definition.string.end.php
753
- begin: (?x)"/ (?= (\\.|[^"/])+/[imsxeADSUXu]*" )
909
+ begin: (?x)"/ (?= (\\.|[^"/])++/[imsxeADSUXu]*" )
754
910
  beginCaptures:
755
911
  "0":
756
912
  name: punctuation.definition.string.begin.php
757
913
  end: (/)([imsxeADSUXu]*)(")
758
914
  patterns:
915
+ - name: constant.character.escape.regex.php
916
+ match: (\\){1,2}[.$^\[\]{}]
917
+ comment: "Escaped from the regexp \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)"
759
918
  - include: "#interpolation"
760
919
  - name: string.regexp.arbitrary-repitition.php
761
920
  captures:
@@ -771,23 +930,43 @@ repository:
771
930
  begin: \[(?:\^?\])?
772
931
  end: \]
773
932
  patterns:
774
- - name: constant.character.escape.php
775
- match: \\.
933
+ - include: "#interpolation"
776
934
  - name: keyword.operator.regexp.php
777
935
  match: "[$^+*]"
778
- - name: constant.character.escape.php
779
- match: \\.
780
936
  interpolation:
781
937
  patterns:
938
+ - name: constant.numeric.octal.php
939
+ match: \\[0-7]{1,3}
940
+ - name: constant.numeric.hex.php
941
+ match: \\x[0-9A-Fa-f]{1,2}
942
+ - name: constant.character.escape.php
943
+ match: \\[nrt\\\$\"]
944
+ - captures:
945
+ "1":
946
+ name: variable.other.php
947
+ "2":
948
+ name: punctuation.definition.variable.php
949
+ "4":
950
+ name: punctuation.definition.variable.php
951
+ match: "(?x)\n\
952
+ \t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\
953
+ \t\t\t\t\t\t"
954
+ comment: "Simple syntax with braces: \"foo${bar}baz\""
782
955
  - captures:
783
956
  "6":
784
- name: keyword.operator.index-start.php
957
+ name: invalid.illegal.php
958
+ "11":
959
+ name: string.unquoted.index.php
785
960
  "7":
786
- name: constant.numeric.index.php
961
+ name: keyword.operator.index-start.php
962
+ "12":
963
+ name: invalid.illegal.invalid-simple-array-index.php
787
964
  "8":
788
- name: variable.other.index.php
965
+ name: constant.numeric.index.php
966
+ "13":
967
+ name: keyword.operator.index-end.php
789
968
  "9":
790
- name: punctuation.definition.variable.php
969
+ name: variable.other.index.php
791
970
  "1":
792
971
  name: variable.other.php
793
972
  "2":
@@ -795,32 +974,27 @@ repository:
795
974
  "4":
796
975
  name: keyword.operator.class.php
797
976
  "10":
798
- name: keyword.operator.index-end.php
977
+ name: punctuation.definition.variable.php
799
978
  "5":
800
979
  name: variable.other.property.php
801
980
  match: "(?x)\n\
802
981
  \t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\
803
982
  \t\t\t\t\t\t(?:\n\
804
983
  \t\t\t\t\t\t\t(->)\n\
805
- \t\t\t\t\t\t\t(\\g<name>)\n\
984
+ \t\t\t\t\t\t\t\t(?:\n\
985
+ \t\t\t\t\t\t\t\t\t(\\g<name>)\n\
986
+ \t\t\t\t\t\t\t\t\t|\n\
987
+ \t\t\t\t\t\t\t\t\t(\\$\\g<name>)\n\
988
+ \t\t\t\t\t\t\t\t)\n\
806
989
  \t\t\t\t\t\t\t|\n\
807
990
  \t\t\t\t\t\t\t(\\[)\n\
808
- \t\t\t\t\t\t\t\t(?:(\\d+|((\\$)\\g<name>)))\n\
991
+ \t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+)|(.*?))\n\
809
992
  \t\t\t\t\t\t\t(\\])\n\
993
+ \t\t\t\t\t\t\t|\n\
994
+ \t\t\t\t\t\t\t(\\$foo)\n\
810
995
  \t\t\t\t\t\t)?\n\
811
996
  \t\t\t\t\t\t"
812
997
  comment: "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar"
813
- - captures:
814
- "1":
815
- name: variable.other.php
816
- "2":
817
- name: punctuation.definition.variable.php
818
- "4":
819
- name: punctuation.definition.variable.php
820
- match: "(?x)\n\
821
- \t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\
822
- \t\t\t\t\t\t"
823
- comment: "Simple syntax with braces: \"foo${bar}baz\""
824
998
  - endCaptures:
825
999
  "0":
826
1000
  name: punctuation.definition.variable.php
@@ -853,7 +1027,7 @@ repository:
853
1027
  - name: support.constant.core.php
854
1028
  match: \b(DEFAULT_INCLUDE_PATH|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|(RECOVERABLE_)?ERROR|NOTICE|PARSE|STRICT|USER_(ERROR|NOTICE|WARNING)|WARNING)|PEAR_(EXTENSION_DIR|INSTALL_DIR)|PHP_(BINDIR|CONFIG_FILE_PATH|DATADIR|E(OL|XTENSION_DIR)|L(IBDIR|OCALSTATEDIR)|O(S|UTPUT_HANDLER_CONT|UTPUT_HANDLER_END|UTPUT_HANDLER_START)|SYSCONFDIR|VERSION))\b
855
1029
  - name: support.constant.std.php
856
- match: \b(A(B(DAY_([1-7])|MON_([0-9]{1,2}))|LT_DIGITS|M_STR|SSERT_(ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(ASE_(LOWER|UPPER)|HAR_MAX|O(DESET|NNECTION_(ABORTED|NORMAL|TIMEOUT)|UNT_(NORMAL|RECURSIVE))|REDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|RNCYSTR|RYPT_(BLOWFISH|EXT_DES|MD5|SALT_LENGTH|STD_DES)|URRENCY_SYMBOL)|D(AY_([1-7])|ECIMAL_POINT|IRECTORY_SEPARATOR|_(FMT|T_FMT))|E(NT_(COMPAT|NOQUOTES|QUOTES)|RA(|_D_FMT|_D_T_FMT|_T_FMT|_YEAR)|XTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(ENTITIES|SPECIALCHARS)|IN(FO_(ALL|CONFIGURATION|CREDITS|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(ALL|PERDIR|SYSTEM|USER)|T_(CURR_SYMBOL|FRAC_DIGITS))|L(C_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|O(CK_(EX|NB|SH|UN)|G_(ALERT|AUTH(|PRIV)|CONS|CRIT|CRON|DAEMON|DEBUG|EMERG|ERR|INFO|KERN|LOCAL([0-7])|LPR|MAIL|NDELAY|NEWS|NOTICE|NOWAIT|ODELAY|PERROR|PID|SYSLOG|USER|UUCP|WARNING)))|M(ON_([0-9]{1,2}|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|YSQL_(ASSOC|BOTH|NUM)|_(1_PI|2_(PI|SQRTPI)|E|L(N10|N2|OG(10E|2E))|PI(|_2|_4)|SQRT1_2|SQRT2))|N(EGATIVE_SIGN|O(EXPR|STR)|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|P(ATH(INFO_(BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|RADIXCHAR|S(EEK_(CUR|END|SET)|ORT_(ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(BOTH|LEFT|RIGHT))|T(HOUS(ANDS_SEP|EP)|_(FMT(|_AMPM)))|YES(EXPR|STR))\b
1030
+ match: \b(A(B(DAY_([1-7])|MON_([0-9]{1,2}))|LT_DIGITS|M_STR|SSERT_(ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(ASE_(LOWER|UPPER)|HAR_MAX|O(DESET|NNECTION_(ABORTED|NORMAL|TIMEOUT)|UNT_(NORMAL|RECURSIVE))|REDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|RNCYSTR|RYPT_(BLOWFISH|EXT_DES|MD5|SALT_LENGTH|STD_DES)|URRENCY_SYMBOL)|D(AY_([1-7])|ECIMAL_POINT|IRECTORY_SEPARATOR|_(FMT|T_FMT))|E(NT_(COMPAT|NOQUOTES|QUOTES)|RA(|_D_FMT|_D_T_FMT|_T_FMT|_YEAR)|XTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(ENTITIES|SPECIALCHARS)|IN(FO_(ALL|CONFIGURATION|CREDITS|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(ALL|PERDIR|SYSTEM|USER)|T_(CURR_SYMBOL|FRAC_DIGITS))|L(C_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|O(CK_(EX|NB|SH|UN)|G_(ALERT|AUTH(|PRIV)|CONS|CRIT|CRON|DAEMON|DEBUG|EMERG|ERR|INFO|KERN|LOCAL([0-7])|LPR|MAIL|NDELAY|NEWS|NOTICE|NOWAIT|ODELAY|PERROR|PID|SYSLOG|USER|UUCP|WARNING)))|M(ON_([0-9]{1,2}|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|YSQL_(ASSOC|BOTH|NUM)|_(1_PI|2_(PI|SQRTPI)|E|L(N10|N2|OG(10E|2E))|PI(|_2|_4)|SQRT1_2|SQRT2))|N(EGATIVE_SIGN|O(EXPR|STR)|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|P(ATH(INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|RADIXCHAR|S(EEK_(CUR|END|SET)|ORT_(ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(BOTH|LEFT|RIGHT))|T(HOUS(ANDS_SEP|EP)|_(FMT(|_AMPM)))|YES(EXPR|STR))\b
857
1031
  - name: constant.other.php
858
1032
  match: "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*"
859
1033
  comment: |-
@@ -872,11 +1046,49 @@ repository:
872
1046
  "0":
873
1047
  name: punctuation.definition.string.end.php
874
1048
  begin: "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)"
1049
+ contentName: source.sql.embedded.php
875
1050
  beginCaptures:
876
1051
  "0":
877
1052
  name: punctuation.definition.string.begin.php
878
1053
  end: "'"
879
1054
  patterns:
1055
+ - name: comment.line.number-sign.sql
1056
+ match: "#(\\\\'|[^'])*(?='|$\\n?)"
1057
+ - name: comment.line.double-dash.sql
1058
+ match: --(\\'|[^'])*(?='|$\n?)
1059
+ - name: string.quoted.single.unclosed.sql
1060
+ begin: \\'(?!([^\\']|\\[^'])*\\')(?=(\\[^']|.)*?')
1061
+ end: (?=')
1062
+ patterns:
1063
+ - name: constant.character.escape.php
1064
+ match: \\[\\']
1065
+ comment: |-
1066
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
1067
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
1068
+ - name: string.quoted.other.backtick.unclosed.sql
1069
+ begin: `(?=[^`]*?')
1070
+ end: (?=')
1071
+ patterns:
1072
+ - name: constant.character.escape.php
1073
+ match: \\[\\']
1074
+ comment: |-
1075
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
1076
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
1077
+ - name: string.quoted.double.unclosed.sql
1078
+ begin: "\"(?=[^\"]*?')"
1079
+ end: (?=')
1080
+ patterns:
1081
+ - name: constant.character.escape.php
1082
+ match: \\[\\']
1083
+ comment: |-
1084
+ Unclosed strings must be captured to avoid them eating the remainder of the PHP script
1085
+ Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'"
1086
+ - name: string.quoted.single.sql
1087
+ captures:
1088
+ "0":
1089
+ name: constant.character.escape.php
1090
+ begin: \\'
1091
+ end: \\'
880
1092
  - name: constant.character.escape.php
881
1093
  match: \\[\\']
882
1094
  - include: source.sql
@@ -896,7 +1108,7 @@ repository:
896
1108
  endCaptures:
897
1109
  "0":
898
1110
  name: punctuation.definition.array.end.php
899
- begin: (array)(\()
1111
+ begin: (array)\s*(\()
900
1112
  beginCaptures:
901
1113
  "1":
902
1114
  name: support.function.construct.php
@@ -937,13 +1149,13 @@ repository:
937
1149
  "4":
938
1150
  name: invalid.illegal.wrong-access-type.phpdoc.php
939
1151
  match: ^\s*\*\s*(@access)\s+((public|private|protected)|(.+))\s*$
940
- - name: markup.underline.link
1152
+ - name: markup.underline.link.php
941
1153
  match: ((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]+(?<![.?:])
942
1154
  - captures:
943
1155
  "1":
944
1156
  name: keyword.other.phpdoc.php
945
1157
  "2":
946
- name: markup.underline.link
1158
+ name: markup.underline.link.php
947
1159
  match: (@xlink)\s+(.+)\s*$
948
1160
  - name: keyword.other.phpdoc.php
949
1161
  match: \@(a(bstract|uthor)|c(ategory|opyright)|global|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final)\b
@@ -959,12 +1171,82 @@ uuid: 22986475-8CA5-11D9-AEDD-000D93C8BE28
959
1171
  foldingStartMarker: (/\*|\{\s*$|<<<HTML)
960
1172
  patterns:
961
1173
  - captures:
1174
+ "6":
1175
+ name: punctuation.section.embedded.end.php
1176
+ "7":
1177
+ name: source.php
1178
+ "8":
1179
+ name: punctuation.whitespace.embedded.trailing.php
1180
+ "1":
1181
+ name: punctuation.whitespace.embedded.leading.php
1182
+ "2":
1183
+ name: source.php.embedded.line.empty.html
1184
+ "3":
1185
+ name: punctuation.section.embedded.begin.php
1186
+ "4":
1187
+ name: meta.consecutive-tags.php
1188
+ "5":
1189
+ name: source.php
1190
+ match: "(?x)\n\
1191
+ \t\t\t\t(^\\s*)?\t\t\t\t\t\t\t# 1 - Leading whitespace\n\
1192
+ \t\t\t\t\t(\t\t\t\t\t\t\t# 2 - meta.embedded.line.empty.php\n\
1193
+ \t\t\t\t\t\t(\t\t\t\t\t\t# 3 - Open Tag\n\
1194
+ \t\t\t\t\t\t\t(?:\n\
1195
+ \t\t\t\t\t\t\t\t((?<=\\?>)<)\t\t# 4 - Consecutive tags\n\
1196
+ \t\t\t\t\t\t\t | <\n\
1197
+ \t\t\t\t\t\t\t)\n\
1198
+ \t\t\t\t\t\t\t\\?(?i:php|=)?\n\
1199
+ \t\t\t\t\t\t)\n\
1200
+ \t\t\t\t\t\t\t(\\s*)\t\t\t\t# 5 - Loneliness\n\
1201
+ \t\t\t\t\t\t((\\?)>)\t\t\t\t\t# 6 - Close Tag\n\
1202
+ \t\t\t\t\t\t\t\t\t\t\t\t# 7 - Scope ? as scope.php\n\
1203
+ \t\t\t\t\t)\n\
1204
+ \t\t\t\t(\n\
1205
+ \t\t\t\t\t\\1\t\t\t\t\t\t\t# Match nothing if there was no\n\
1206
+ \t\t\t\t\t\t\t\t\t\t\t\t# leading whitespace...\n\
1207
+ \t\t\t\t | (\\s*$\\n)?\t\t\t\t\t# or match trailing whitespace.\n\
1208
+ \t\t\t\t)\n\
1209
+ \t\t\t"
1210
+ comment: Matches empty tags.
1211
+ - endCaptures:
1212
+ "0":
1213
+ name: punctuation.whitespace.embedded.trailing.php
1214
+ begin: ^\s*(?=<\?)
1215
+ beginCaptures:
1216
+ "0":
1217
+ name: punctuation.whitespace.embedded.leading.php
1218
+ end: (?<=\?>)(\s*$\n)?
1219
+ patterns:
1220
+ - name: source.php.embedded.block.html
1221
+ endCaptures:
1222
+ "0":
1223
+ name: punctuation.section.embedded.end.php
1224
+ "1":
1225
+ name: source.php
1226
+ begin: <\?(?i:php|=)?
1227
+ beginCaptures:
1228
+ "0":
1229
+ name: punctuation.section.embedded.begin.php
1230
+ end: (\?)>
1231
+ patterns:
1232
+ - include: "#language"
1233
+ comment: Catches tags with preceeding whitespace.
1234
+ - name: source.php.embedded.line.html
1235
+ endCaptures:
1236
+ "0":
1237
+ name: punctuation.section.embedded.end.php
1238
+ "1":
1239
+ name: source.php
1240
+ begin: (((?<=\?>)<)|<)\?(?i:php|=)?
1241
+ beginCaptures:
962
1242
  "0":
963
- name: punctuation.section.embedded.php
964
- begin: <\?(?i:php|=)?
965
- end: \?>
1243
+ name: punctuation.section.embedded.begin.php
1244
+ "2":
1245
+ name: meta.consecutive-tags.php
1246
+ end: (\?)>
966
1247
  patterns:
967
1248
  - include: "#language"
1249
+ comment: Catches the remainder.
968
1250
  foldingStopMarker: (\*/|^\s*\}|^HTML;)
969
1251
  comment: "TODO:\n\
970
1252
  \xE2\x80\xA2 Try to improve parameters list syntax \xE2\x80\x93 scope numbers, \xE2\x80\x98=\xE2\x80\x99, \xE2\x80\x98,\xE2\x80\x99 and possibly be intelligent about entity ordering\n\