Encontre cadeias entre duas tags com regex no Qt

alguém pode me ajudar com isso?

Eu tenho uma string que contém N substrings, delimitados por tags e eu tenho que obter todos os substrings. A corda é como

STARTfoo barENDSTARThi! ENDSTARTstackoverflowrulezEND

Gostaria de obter todas as strings entre as tags START / END, tentei com algumas expressões regulares sem sorte:

(START) (. *) (END) fornece TODO o conteúdo entre a primeira e a última tag

(START) (\ w +) (END) não fornece resultado

O código é muito simples:

QString l_str "STARTfoo barENDSTARThi there!ENDSTARTstackoverflowrulezEND"; 
QRegExp rx("(START)(\w+)(END)");
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(l_str, pos)) != -1)
{
    list << rx.cap(1);
    pos += rx.matchedLength();
}
qWarning() << list;

Eu gostaria de uma lista resultante como:

Barra STARTfooEND

STARThi! END

STARTstackoverflowrulezEND

Qualquer ajuda?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion