Maybe I could make do with two regexes?
First, use the negative lookbehind, to split on double-quotes unless they're preceded by backslash
Then iterate over the resulting array and split every second element on the whitespaces in it
Then flatten it, I guess
That sounds very inefficient 