You could use following Regex for the purpose.
[\""].+?[\""]|[^ ]+
For example,
var commandList = Regex.Matches(baseCommand, @"[\""].+?[\""]|[^ ]+")
.Cast<Match>()
.Select(x => x.Value.Trim('"'))
.ToList();
Sample 1 Input
DoSomething "second arg that has spaces" thirdArguementWithoutSpacesthirdArgumentWithoutSpaces
Output
Command List
------------
DoSomething
second arg that has spaces
thirdArguementWithoutSpacesthirdArgumentWithoutSpaces
Sample 2 Input
DoSomething "second arg that has spaces" "third ArguementArgument With Spaces"
Output
Command List
------------
DoSomething
second arg that has spaces
third ArguementArgument With Spaces