The parser from libvyosconfig used in vyos.configtree supports escaped quotes (single and double) in double-quoted strings, but trying to use them in a single-quoted string causes a parse error.
>>> c = vyos.configtree.ConfigTree(""" foo "fo\\'\\"o" """)
>>> print(str(c))
foo "fo'\"o"
>>> c = vyos.configtree.ConfigTree(""" foo 'fo\\'\\"o' """)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/vyos/configtree.py", line 167, in __init__
raise ValueError("Failed to parse config: {0}".format(msg))
ValueError: Failed to parse config: String is not terminatedThis is really a lexer rather than a parser issue, it emits two tokens (STRING and IDENT) rather than one in that case.
While existing VyOS code always uses double quotes in config output, people with hand-edited configs can run into confusing errors.