$s = 'one seven eight two "three" four "five" "nine" ten eleven six twelve'; @q = $S =~ m[" ( [^"]+ ) "]gx; print @q three five nine @u = $S =~ m[(\S+)\s* (?: (?: " [^"]+ " \s*) | $ )* ]gx; print @u one seven eight two four ten eleven six twelve