GoogleのようなAND検索を実装しようとしています。

以下のように空白で区切ろうと考えています
preg_split('/\p{Z}+/', $query);

単純な区切りでは問題ないのですが、
test aaaa => array('test', 'aaaa');

以下のように一単語として検索したい場合の正規表現が分かりません。
"test aaaa" test => array('test aaaa', 'test');

分かる方お願いします。