 		]
 	doubleQuotedString:
 		begin: "(?<!(?<!`)\")\""
+		beginCaptures:
+			"0":
+				name: "punctuation.definition.string.begin.powershell"
 		end: "\"(?!\")"
+		endCaptures:
+			"0":
+				name: "punctuation.definition.string.end.powershell"
 		name: "string.quoted.double.powershell"
 		patterns: [
 			{

		patterns: [
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "constant.language.powershell"
				comment: "These are special constants."
				match: "(\\$)(?i:(False|Null|True))\\b"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "support.constant.variable.powershell"
					"3":
						name: "entity.name.function.invocation.powershell"
				comment: "These are the other built-in constants."
				match: "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "support.constant.automatic.powershell"
					"3":
						name: "entity.name.function.invocation.powershell"
				comment: "Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant."
				match: "(\\$)(?i:(\\$|\\^|\\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "variable.language.powershell"
					"3":
						name: "entity.name.function.invocation.powershell"
				comment: "Style preference variables as language variables so that they stand out."
				match: "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|ProgressPreference|PsCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "storage.modifier.scope.powershell"
					"3":
						name: "variable.other.readwrite.powershell"
					"4":
						name: "entity.name.function.invocation.powershell"
				match: "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "punctuation.section.braces.begin.powershell"
					"3":
						name: "storage.modifier.scope.powershell"
					"4":
						name: "variable.other.readwrite.powershell"
					"5":
						name: "punctuation.section.braces.end.powershell"
					"6":
						name: "entity.name.function.invocation.powershell"
				match: "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "support.variable.drive.powershell"
					"3":
						name: "variable.other.readwrite.powershell"
					"4":
						name: "entity.name.function.invocation.powershell"
				match: "(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
			}
			{
				captures:
					"1":
						name: "keyword.other.variable.definition.powershell"
					"2":
						name: "punctuation.section.braces.begin.powershell"
					"3":
						name: "support.variable.drive.powershell"
					"4":
						name: "variable.other.readwrite.powershell"
					"5":
						name: "punctuation.section.braces.end.powershell"
					"6":
						name: "entity.name.function.invocation.powershell"
				match: "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"
			}
		]

						name: "constant.string.documentation.powershell"
					"2":
						name: "keyword.operator.documentation.powershell"
				match: "^(?i:(?:\\s?|#)+(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|EXTERNALHELP|FORWARDHELPCATEGORY|FORWARDHELPTARGETNAME|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|REMOTEHELPRUNSPACE|ROLE|SYNOPSIS))"
				name: "comment.documentation.embedded.powershell"
			}
			{
