Я не совсем уверен, как вы хотите обрабатывать двойные кавычки. Вы также хотите иметь возможность обрабатывать строки, содержащие только одну двойную кавычку на каждом конце, или они всегда удваиваются?
var string = 'filter -n ""function(file) { return file.owner == "john"; }""';
var regex = /([^"\s]+)|""(.*?)""/g;
var match;
var result = [];
while (match = regex.exec(string)) {
result.push(match[1] || match[2]);
}
alert(result);
Результат:
filter,-n,function(file) { return file.owner == "john"; }