<?php $str = 'unquoted section "quoted" and unquoted "another quoted \"with a subquote\" section" more unquoted'; preg_match_all('/"(?:\\\\.|[^"])*"|[^"]+/', $str, $m); print_r($m); ?>
Output
Array
(
[0] => Array
(
[0] => unquoted section
[1] => "quoted"
[2] => and unquoted
[3] => "another quoted \"with a subquote\" section"
[4] => more unquoted
)
)