I could only come up with the following regex pattern:
(?:"(.+?)")|(\w+?)(?:\s|$)
It's not perfect. Too lazy to test on all sort of string combinations, but I tried applying the pattern on your string and it returns exactly like what you expected.
P/S: I only tested it using RegexBuddy, not inside .Net codes.