To use formal language theory, strings containing escape characters are regular, i.e. parseable with a finite-state machine. Allowing nesting means you need a stack to find the matching pair.
Even for things where the nesting does happen during lexical analysis, it's pretty trivial to keep a count in your lexer. Lots of languages support nesting comment syntax or string interpolation, which both have equivalent difficulty.
/* nested /* comments */ don't work */ (* nested (* comments *) work *)https://wiki.dlang.org/Commenting_out_code#Nested_comments
This allows commenting out code containing comments, which can be useful when debugging or giving usage examples in the code.
To end a string, use the » character.
?«Oh, you just use the « character.»
Parse error. Unexpected EOF.
To clarify: we’d still need escaping but in fewer cases.