diff --git a/TypeScript.YAML-tmLanguage b/TypeScript.YAML-tmLanguage
index d004a441..68b2fec3 100644
--- a/TypeScript.YAML-tmLanguage
+++ b/TypeScript.YAML-tmLanguage
@@ -135,7 +135,7 @@ variables:
{{functionLikeType}} |
(:\s*(=>|{{matchingParenthesis}}|(<[^<>]*>)|[^<>(),=])+={{functionOrArrowLookup}})
arrowFunctionEnd: (?==>|\{|(^\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\s+))
- regexpTail: ([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])
+ regexpTail: ([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])
completeRegexp: \/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/{{regexpTail}})
patterns:
@@ -1306,7 +1306,7 @@ repository:
begin: (?<=\))\s*{{completeRegexp}}
beginCaptures:
'0': { name: punctuation.definition.string.begin.ts }
- end: (/)([gimsuy]*)
+ end: (/)([dgimsuy]*)
endCaptures:
'1': { name: punctuation.definition.string.end.ts }
'2': { name: keyword.other.ts }
@@ -2724,7 +2724,7 @@ repository:
begin: (?|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/{{regexpTail}})
beginCaptures:
'1': { name: punctuation.definition.string.begin.ts }
- end: (/)([gimsuy]*)
+ end: (/)([dgimsuy]*)
endCaptures:
'1': { name: punctuation.definition.string.end.ts }
'2': { name: keyword.other.ts}
@@ -2735,7 +2735,7 @@ repository:
begin: ((?name
string.regexp.ts
begin
- (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
0
@@ -4178,7 +4178,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
@@ -8227,7 +8227,7 @@
name
string.regexp.ts
begin
- (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
1
@@ -8237,7 +8237,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
@@ -8263,7 +8263,7 @@
name
string.regexp.ts
begin
- ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
0
@@ -8273,7 +8273,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
diff --git a/TypeScriptReact.tmLanguage b/TypeScriptReact.tmLanguage
index ed7d8a16..199c13db 100644
--- a/TypeScriptReact.tmLanguage
+++ b/TypeScriptReact.tmLanguage
@@ -4190,7 +4190,7 @@
name
string.regexp.tsx
begin
- (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
0
@@ -4200,7 +4200,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
@@ -8175,7 +8175,7 @@
name
string.regexp.tsx
begin
- (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
1
@@ -8185,7 +8185,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
@@ -8211,7 +8211,7 @@
name
string.regexp.tsx
begin
- ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
+ ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))
beginCaptures
0
@@ -8221,7 +8221,7 @@
end
- (/)([gimsuy]*)
+ (/)([dgimsuy]*)
endCaptures
1
diff --git a/tests/baselines/regexp.baseline.txt b/tests/baselines/regexp.baseline.txt
index 6c2406f5..40b3030a 100644
--- a/tests/baselines/regexp.baseline.txt
+++ b/tests/baselines/regexp.baseline.txt
@@ -2,6 +2,7 @@ original file
-----------------------------------
var a = /(?:([a-zA-Z_$][\w$])*)/i;
var x = /\s*\b(async\s+)?function\b/g;
+var d = /\s*\b(async\s+)?function\b/d;
-----------------------------------
Grammar: TypeScript.tmLanguage
@@ -58,6 +59,49 @@ Grammar: TypeScript.tmLanguage
^
source.ts punctuation.terminator.statement.ts
>var x = /\s*\b(async\s+)?function\b/g;
+ ^^^
+ source.ts meta.var.expr.ts storage.type.ts
+ ^
+ source.ts meta.var.expr.ts
+ ^
+ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
+ ^
+ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
+ ^
+ source.ts meta.var.expr.ts keyword.operator.assignment.ts
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts
+ ^^
+ source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp
+ ^^
+ source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp
+ ^^^^^
+ source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp
+ ^^
+ source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp constant.other.character-class.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp
+ ^^^^^^^^
+ source.ts meta.var.expr.ts string.regexp.ts
+ ^^
+ source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts
+ ^
+ source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts
+ ^
+ source.ts punctuation.terminator.statement.ts
+>var d = /\s*\b(async\s+)?function\b/d;
^^^
source.ts meta.var.expr.ts storage.type.ts
^
diff --git a/tests/cases/regexp.ts b/tests/cases/regexp.ts
index abbccf97..1c56b0c1 100644
--- a/tests/cases/regexp.ts
+++ b/tests/cases/regexp.ts
@@ -1,2 +1,3 @@
var a = /(?:([a-zA-Z_$][\w$])*)/i;
-var x = /\s*\b(async\s+)?function\b/g;
\ No newline at end of file
+var x = /\s*\b(async\s+)?function\b/g;
+var d = /\s*\b(async\s+)?function\b/d;
\ No newline at end of file