 		patterns: [{
 			name: "string.quoted.double.empty.roff",
 			match: '(")(")'
-		}, {
+		},{
 			name: "string.quoted.double.roff",
 			begin: '"(?!")'
 			end:   '(?<!")"(?!")|(?<!\\\\)$'

				2: {name: "keyword.control.roff"}
			patterns: [{include: "#params"}]
			
		}, {
			
			# Underlined passage
			name: "meta.request.ul.roff"

	
	
	
	# Escape sequences
	escapes:
		patterns: [{
			
			# Comments
			name: "comment.line.roff"
			begin: "(?:^[.'])?\\s*\\\\\""
			end: "$"
			beginCaptures:
				0: {name: "punctuation.definition.begin.comment.roff"}
		},{
			
			# Empty control lines
			name: "comment.empty.roff"
			match: "^[.'][ \t]*$"
		},
		
		
		# Basic sequences
		{match: "\\x5C{2}",  name: "constant.character.escape.backslash.roff"}
		{match: "\\\\e",     name: "constant.character.escape.current-escape-char.roff"}
		{match: "\\\\´",     name: "constant.character.escape.acute-accent.roff"}
		{match: "\\\\`",     name: "constant.character.escape.grave-accent.roff"}
		{match: "\\\\-",     name: "constant.character.escape.minus.roff"}
		{match: "\\\\\\.",   name: "constant.character.escape.dot.roff"}
		{match: "\\\\ ",     name: "constant.character.escape.space.roff"}
		{match: "\\\\0",     name: "constant.character.escape.space.digit-width.roff"}
		{match: "\\\\\\|",   name: "constant.character.escape.space.one-sixth-em.roff"}
		{match: "\\\\\\^",   name: "constant.character.escape.space.one-twelfth-em.roff"}
		{match: "\\\\&",     name: "constant.character.escape.zero-width-marker.roff"}
		{match: "\\\\!",     name: "constant.character.escape.transparent-line.roff"}  # May need its own rule
		{match: "\\\\%",     name: "constant.character.escape.hyphenation-char.roff"}
		{match: "\\\\a",     name: "constant.character.escape.leader-char.roff"}
		{match: "\\\\c",     name: "constant.character.escape.connect.roff"}
		{match: "\\\\d",     name: "constant.character.escape.downwards.roff"}
		{match: "\\\\p",     name: "constant.character.escape.spread-line.roff"}
		{match: "\\\\r",     name: "constant.character.escape.reverse.roff"}
		{match: "\\\\t",     name: "constant.character.escape.tab.roff"}
		{match: "\\\\u",     name: "constant.character.escape.upwards.roff"}
		{match: "\\\\\\{",   name: "constant.character.escape.conditional.begin.roff"}
		{match: "\\\\\\}",   name: "constant.character.escape.conditional.end.roff"}
		{match: "\\\\\n",    name: "constant.character.escape.newline.roff"}, {
			
			# \(aa - Character named "aa"
			name: "constant.character.escape.named-char.roff"
			match: "(?x)
				(\\\\ \\()
				(
					em|hy|bu|sq|ru|14|12|34|fi|fl|ff|Fi|Fl|de|dg|fm|ct|rg|co|pl|mi|eq|sc|aa|ga|ul|sl|ts|sr|rn|ap|
					ua|da|mu|di|cu|ca|sb|sp|ib|ip|if|pd|gr|no|is|pt|es|mo|br|dd|rh|lh|bs|or|ci|lt|lb|rt|rb|lk|rk|
					bv|lf|rf|lc|rc|[>=<|!]=|->|<-|[+]-|\\*[A-IK-UW-Z*a-ik-uw-z]
				)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "entity.name.roff"}
		
		},{
			
			# \*x, \*(xx - Interpolate string "x" or "xx"
			name: "constant.character.escape.interpolate-string.roff"
			match: "(\\\\\\*)(\\(\\S{2}|\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \$N - Interpolate argument number N (valid range: 1-9)
			name: "constant.character.escape.interpolate-argument.roff"
			match: "(\\\\\\$)(\\d)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# Parametric/function-like escape sequences
			name: "constant.character.escape.function.roff"
			match: "(\\\\[bCDhHSlLovwxXN])((.)(.*?)(\\3))"
			captures:
				1: {name: "entity.name.function.roff"}
				2: {name: "string.other.roff"}
				3: {name: "punctuation.definition.begin.roff"}
				4: {patterns: [{include: "#escapes"}]}
				5: {name: "punctuation.definition.end.roff"}
		},{
			
			# Font: Italics (typically rendered by nroff as underlined text)
			name: "markup.italic.roff"
			begin: "(\\\\)(f[I2])"
			end: "(?=\\\\f[A-Za-z0-9])((\\\\)(f[RP1]))?"
			beginCaptures:
				1: {name: "punctuation.definition.backslash.roff"}
				2: {name: "entity.name.roff"}
			endCaptures:
				1: {name: "meta.terminator.roff"}
				2: {name: "punctuation.definition.backslash.roff"}
				3: {name: "entity.name.roff"}
		},{
			
			# Font: Bold
			name: "markup.bold.roff"
			begin: "(\\\\)(f[B3])"
			end: "(?=\\\\f[A-Za-z0-9])((\\\\)(f[RP1]))?"
			beginCaptures:
				1: {name: "punctuation.definition.backslash.roff"}
				2: {name: "entity.name.roff"}
			endCaptures:
				1: {name: "meta.terminator.roff"}
				2: {name: "punctuation.definition.backslash.roff"}
				3: {name: "entity.name.roff"}
		},{
			
			# Font: Bold and italic
			name: "markup.bold.italic.roff"
			begin: "(\\\\)(f4)"
			end: "(?=\\\\f[A-Za-z0-9])((\\\\)(f[RP1]))?"
			beginCaptures:
				1: {name: "punctuation.definition.backslash.roff"}
				2: {name: "entity.name.roff"}
			endCaptures:
				1: {name: "meta.terminator.roff"}
				2: {name: "punctuation.definition.backslash.roff"}
				3: {name: "entity.name.roff"}
		},{
			
			# \fX, \f(XX, \fN - Change to font named "X" or "XX", or position N
			name: "constant.character.escape.font.roff"
			match: "(\\\\f)(\\(\\S{2}|\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \gx, \g(xx - Format of number register "x" or "xx"
			name: "constant.character.escape.format-register.roff"
			match: "(\\\\g)(\\(\\S{2}|\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \kX - Mark horizontal input place in register "X"
			name: "constant.character.escape.mark-input.roff"
			match: "(\\\\k)(\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \nX, \n(XX - Contents of number register "X" or "XX"
			name: "constant.character.escape.expand-register.roff"
			match: "(\\\\n)(\\(\\S{2}|\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \sN, \s±N - Point-size change function; also \s(NN, \s±(NN
			name: "constant.character.escape.point-size.roff"
			match: "(\\\\s)([-+]?\\(?\\d+)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \zC - Print "C" with zero width (without spacing)
			name: "constant.character.escape.zero-width-print.roff"
			match: "(\\\\z)(\\S)"
			captures:
				1: {name: "punctuation.definition.begin.roff"}
				2: {name: "variable.parameter.roff"}
		},{
			
			# \Z - Any character not listed above
			match: "\\\\(\\S)",
			name: "constant.character.escape.misc.roff"
		}]
	
	
	
	
	# Macros
	macros:
		patterns: [{
			
			# .TH: Title (GNU manual macro)
			name: "markup.heading.title.gnu.man.macro.roff"
			patterns: [{include: "#params"}]
			begin: "^([.'][ \t]*TH)(?=[ \t]|$)"
			end: "$"
			beginCaptures:
				1: {name: "entity.name.function.roff"}
		},{
			
			# .SH: Section heading
			name: "markup.heading.section.man.macro.roff"
			patterns: [{include: "#params"}]
			begin: "^([.'][ \t]*SH)(?=[ \t]|$)"
			end: "$"
			beginCaptures:
				1: {name: "entity.name.function.roff"}
		},{
			
			# .Ss: Subsection
			name: "markup.heading.subsection.man.macro.roff"
			patterns: [{include: "#params"}]
			begin: "^([.'][ \t]*Ss)(?=[ \t]|$)"
			end: "$"
			beginCaptures:
				1: {name: "entity.name.function.roff"}
		},{
			
			# .B: Bold
			name: "markup.bold.roff"
			begin: "^[.'][ \t]*B(?:$|[ \t]+|(?=\\\\))"
			end:   "([^\n ]+ ?\n)"
			patterns: [{ include: "$self" }]
			
		},{
			
			# .I: Italic
			name: "markup.italic.roff"
			begin: "^[.'][ \t]*I(?:$|[ \t]+|(?=\\\\))"
			end:   "([^\n ]+ ?\n)"
			patterns: [{ include: "$self" }]
			
		},{
			
			# .BI: Bold and italic
			name: "markup.bold-italic.roff"
			begin: "^([.'][ \t]*BI)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        BI|
					^[.\'][ \t]{1}BI|
					^[.\'][ \t]{2}BI|
					^[.\'][ \t]{3}BI|
					^[.\'][ \t]{4}BI)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#italic-strings"}]
				beginCaptures:
					1:
						name: "markup.bold.roff"
						patterns: [{include: "#bold-strings"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(("[^"]*")|\\S+)'
				patterns: [{include: "#bold-strings"}]
				endCaptures:
					1: {name: "markup.italic.roff"}
					2: {patterns: [{include: "#string"}]}
			}]
			
		},{
			
			# .BR: Bold and Roman
			name: "markup.bold-roman.roff"
			begin: "^([.'][ \t]*BR)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        BR|
					^[.\'][ \t]{1}BR|
					^[.\'][ \t]{2}BR|
					^[.\'][ \t]{3}BR|
					^[.\'][ \t]{4}BR)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#params"}]
				beginCaptures:
					1:
						name: "markup.bold.roff"
						patterns: [{include: "#bold-strings"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(?:("[^"]*")|\\S+)'
				patterns: [{include: "#bold-strings"}]
				endCaptures:
					1: {patterns: [{include: "#string"}]}
			}]
		
		},{
			
			# .IB: Italic and bold
			name: "markup.italic-bold.roff"
			begin: "^([.'][ \t]*IB)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        IB|
					^[.\'][ \t]{1}IB|
					^[.\'][ \t]{2}IB|
					^[.\'][ \t]{3}IB|
					^[.\'][ \t]{4}IB)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#bold-strings"}]
				beginCaptures:
					1:
						name: "markup.italic.roff"
						patterns: [{include: "#italic-strings"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(("[^"]*")|\\S+)'
				patterns: [{include: "#italic-strings"}]
				endCaptures:
					1: {name: "markup.bold.roff"}
					2: {patterns: [{include: "#string"}]}
			}]
		
		},{
			
			# .IR: Italic and Roman
			name: "markup.italic-roman.roff"
			begin: "^([.'][ \t]*IR)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        IR|
					^[.\'][ \t]{1}IR|
					^[.\'][ \t]{2}IR|
					^[.\'][ \t]{3}IR|
					^[.\'][ \t]{4}IR)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#params"}]
				beginCaptures:
					1:
						name: "markup.italic.roff"
						patterns: [{include: "#italic-strings"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(?:("[^"]*")|\\S+)'
				patterns: [{include: "#italic-strings"}]
				endCaptures:
					1: {patterns: [{include: "#string"}]}
			}]
		
		},{
			
			# .RB: Roman and bold
			name: "markup.roman-bold.roff"
			begin: "^([.'][ \t]*RB)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        RB|
					^[.\'][ \t]{1}RB|
					^[.\'][ \t]{2}RB|
					^[.\'][ \t]{3}RB|
					^[.\'][ \t]{4}RB)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#bold-strings"}]
				beginCaptures:
					1: patterns: [{include: "#string"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(("[^"]*")|\\S+)'
				patterns: [{include: "#string"}]
				endCaptures:
					1: {name: "markup.bold.roff"}
					2: {patterns: [{include: "#string"}]}
			}]
		
		},{
			
			# .RI: Roman and italic
			name: "markup.roman-italic.roff"
			begin: "^([.'][ \t]*RI)(?=[ \t\\\\]|$)"
			end:   "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "entity.function.name.roff"}
			patterns: [{
				begin: '(?x)(?<=
					^[.\']        RI|
					^[.\'][ \t]{1}RI|
					^[.\'][ \t]{2}RI|
					^[.\'][ \t]{3}RI|
					^[.\'][ \t]{4}RI)
					[ \\t]+(".*?(?<!")"(?!")|[^"\\s]\\S*)[ \t]*(?=")'
				end: '(?<=")|(?<!\\\\)$'
				patterns: [{include: "#italic-strings"}]
				beginCaptures:
					1: patterns: [{include: "#string"}]
			},{
				begin: '(?=("[^"]*(?<!\\\\)")|\\S+)'
				end: '$|(?:^|[ \t]+|(?<="))(("[^"]*")|\\S+)'
				patterns: [{include: "#string"}]
				endCaptures:
					1: {name: "markup.italic.roff"}
					2: {patterns: [{include: "#string"}]}
			}]
		}]
	
	
	
	
	# Bold words ("Quoted"/Unquoted)
