Actually it's possible to reach content between quotes and then seeking for ).
Pattern will look like
Pattern.compile("\\qsTr?\\s*\\(\\s*(((\".*?(?<!\\\\)\")|('.*?(?<!\\\\)')).*?)(?=\\))", Pattern.DOTALL);
It guarantees if content wrapped by qsTr() starts from " it will definetely be extracted. For example if you to parse next string:
qsTr("source", count)
you'll get next result:
"source", count
And then you can check for validity of extracted string (for example, if it is possible for qsTr function to contain another params after static string param).