#!/usr/bin/perl -w use strict; my $string = 'one "two three" four five "six seven eight" nine'; my @list = split / [ ]" #opening quotes | #or "[ ] #closing quotes | [ ] #a space (?!.*?\w") # that's not before any number of characters followed # by a closing quote (allows EOL at quote) /x, $string;