 		]
 	
 	
+	# Pair of strings separated by an arbitrary delimiter
+	"2-part-string":
+		name: "string.quoted.other.arbitrary-delimiter.2-part.roff"
+		match: "\\G(.)((?:(?!\\1).)*)(\\1)((?:(?!\\1).)*)(\\1)"
+		captures:
+			1: name: "punctuation.definition.string.begin.roff",  patterns: [include: "#c0"]
+			2: name: "meta.segment.1.left.roff",                  patterns: [include: "#escapes"]
+			3: name: "punctuation.definition.string.middle.roff", patterns: [include: "#c0"]
+			4: name: "meta.segment.2.right.roff",                 patterns: [include: "#escapes"]
+			5: name: "punctuation.definition.string.end.roff",    patterns: [include: "#c0"]
+	
+	
 	# Group of strings delimited with an arbitrary character
 	"3-part-title":
-		name: "string.3-part.other.roff"
+		name: "string.quoted.other.arbitrary-delimiter.3-part.roff"
 		match: '\\G[ \\t]*(.)((?:(?!\\1).)*)(\\1)((?:(?!\\1).)*)(\\1)((?:(?!\\1).)*)(\\1)'
 		captures:
-			1: name: "punctuation.definition.string.begin.roff", patterns: [include: "#c0"]
-			2: name: "entity.string.left.roff",                  patterns: [include: "#escapes"]
-			3: name: "punctuation.definition.string.begin.roff", patterns: [include: "#c0"]
-			4: name: "entity.string.centre.roff",                patterns: [include: "#escapes"]
-			5: name: "punctuation.definition.string.end.roff",   patterns: [include: "#c0"]
-			6: name: "entity.string.right.roff",                 patterns: [include: "#escapes"]
-			7: name: "punctuation.definition.string.end.roff",   patterns: [include: "#c0"]
+			1: name: "punctuation.definition.string.outer.begin.roff", patterns: [include: "#c0"]
+			2: name: "meta.segment.1.left.roff",                       patterns: [include: "#escapes"]
+			3: name: "punctuation.definition.string.inner.begin.roff", patterns: [include: "#c0"]
+			4: name: "meta.segment.2.centre.roff",                     patterns: [include: "#escapes"]
+			5: name: "punctuation.definition.string.inner.end.roff",   patterns: [include: "#c0"]
+			6: name: "meta.segment.3.right.roff",                      patterns: [include: "#escapes"]
+			7: name: "punctuation.definition.string.outer.end.roff",   patterns: [include: "#c0"]
 	
 	
 	

		},{
			
			# Conditional input: Begin
			name: "meta.function.begin.roff"
			match: "(?:(?:^|\\G)(\\.|'+)[ \\t]*)?(\\\\\\{(?:\\\\(?=\\R|$))?)"
			captures:
				1: name: "punctuation.definition.request.roff"
				2: name: "punctuation.section.conditional.begin.roff"
		},{
			
			# Conditional input: End
			name: "meta.function.end.roff"
			match: "(?:(?:^|\\G)(\\.|'+)[ \\t]*)?(\\\\\\}(?:\\\\(?=\\R|$))?)"
			captures:
				1: name: "punctuation.definition.request.roff"
				2: name: "punctuation.section.conditional.end.roff"
		},{
			
			# Device control function

				3: name: "punctuation.definition.escape.roff"
		},{
			
			# \*[xx args…] - Interpolate string "xx" with optional arguments (GNU)
			name: "constant.character.escape.function.interpolate-string.gnu.roff"
			begin: "((?:((\\\\)E)|(\\\\))\\*(\\[))"
