$sentence = "How are you doing today? I am doing fine, why thank you.";
preg_match_all('#[a-z]+\s[a-z]+#i', $sentence, $doubleWordArray);
var_dump($doubleWordArray);
I don't understand why "are you" and "you doing" do not match.
That is because those words cannot be matched twice. Once you have matched them, they cannot occur in other groups. Unless you use look around assertions, then substrings can occur multiple times in different match-groups.
<?php
$text = 'How are you doing today? I am doing fine, why thank you.';
preg_match_all('/(?=(\w+\s+\w+))\w+/', $text, $matches);
print_r($matches[1]);
?>
which produces:
[text]Array
(
[0] => How are
[1] => are you
[2] => you doing
[3] => doing today
[4] => I am
[5] => am doing
[6] => doing fine
[7] => why thank
[8] => thank you
)[/text]