Regex espaços correspondentes, mas não em "strings"

Estou procurando por espaços de correspondência de duração regular somente se esses espaços não estiverem entre aspas duplas ("). Por exemplo, em

Mary had "a little lamb"

deve corresponder ao primeiro e ao segundo espaço, mas não aos outros.

Eu quero dividir a string nos espaços que não estão nas aspas duplas, e não nas aspas.

Eu estou usando o C ++ com o kit de ferramentas Qt e queria usar QString :: split (QRegExp). QString é muito semelhante a std :: string e QRegExp são basicamente POSIX regex encapsulados em uma classe. Se existe tal regex, a divisão seria trivial.

Exemplos:

Mary had "a little lamb"     =>   Mary,had,"a little lamb"
1" 2 "3                      =>   1" 2 "3 (no splitting at ")
abc def="g h i" "j k" = 12   =>   abc,def="g h i","j k",=,12

Desculpe pelas edições, eu fui muito impreciso quando fiz a pergunta primeiro. Espero que seja um pouco mais claro agora.

questionAnswers(5)

yourAnswerToTheQuestion