RegExp = #(?:"([^"]+)")|([^ ]+)#

string = apple "banana crust" dandelion elephant "fawn grass" heffalump

matches = Array
(
    [0] => Array
        (
            [0] => apple
            [1] => "banana crust"
            [2] => dandelion
            [3] => elephant
            [4] => "fawn grass"
            [5] => heffalump
        )

    [1] => Array
        (
            [0] => 
            [1] => banana crust
            [2] => 
            [3] => 
            [4] => fawn grass
            [5] => 
        )

    [2] => Array
        (
            [0] => apple
            [1] => 
            [2] => dandelion
            [3] => elephant
            [4] => 
            [5] => heffalump
        )

)

RegExp = #(?:"([^"]+)")|([^ ]+)# string = apple "banana crust" dandelion elephant "fawn grass" heffalump preg_split = Array ( [0] => [1] => [2] => [3] => [4] => )