Итак, вы решили использовать регулярное выражение? Теперь у вас есть две проблемы.
Позвольте мне сделать вывод немного. Требуется произвольное количество полей, где поле состоит из текста без пробелов, или оно разделено пробелами и начинается с кавычки и заканчивается кавычкой (возможно, с пробелами между).
Другими словами, вы хотите сделать то, что делает оболочка командной строки. Вы действительно должны просто что-то использовать. В противном случае вы должны захватывать поле за раз с регулярным выражением, например:
^ *([^ ]+|'[^']*')(.*)
Когда вы добавляете группу один к своему списку и продолжаете цикл с содержанием группы 2.
Один проход через регулярное выражение не сможет захватить сколь угодно большое количество полей. Возможно, вам удастся разделить регулярное выражение (Python сделает это, но не уверен насчет perl), но, поскольку вы сопоставляете вещи вне пробелов, я не уверен, что это даже вариант.