Ich denke das Problem sind eher deine Audrücke selbst als std::regex.
Du solltest für die Zeichen zwischen den Anführungszeichen einen nicht-gierigen Ausdruck (mit '?') verwenden. Aber davon mal abgesehen gehe ich durch wieso die Ausdrücke nicht gehen:
Versuch 1:
Kein Leerzeichen und die letzte Gruppe matcht nur ein einzelnes Zeichen - keine Wörter und auch nicht mehrere einzelne Buchstaben.
Versuch 2:
Dein Pattern verlangt ein einzelnes Zeichen direkt nach dem Anführungszeichen.
Versuch 3:
Eine Mischung aus den beiden obigen.
Nächstes Pattern:
Wieder solltest du keine gierigen Quantoren verwenden.
Versuch 1:
Du hast keinen zweiten Ausdruck ohne Klammern.
Versuch 2:
Siehe 1.
Versuch 3:
Versuch das ganze nochmal mit richtigen Quantoren, dann sollte das funktionieren denke ich.
Ich würde folgenden Ausdruck versuchen:
UNGETESTET ^^