Использование регулярного выражения subpattern to вместо использования регулярного выражения 2 раза в php

Мне интересно, если его можно сделать, включая subpattern (child pattern) в другой шаблон, который позволит мне преобразовать эти 2 preg_match и preg_match_all в один preg_match / preg_match_all.

<?php $data = 'office phones tel1 6665555998 tel2 555666888 tel3 555688855 home phones tel1 555222555 tel2 555222444 tel3 555666888'; preg_match('/phones(.*)home phones/', $data, $matches); // 1st operation preg_match_all('/[0-9]{4,12}/', $matches[1], $matches); // 2nd operation var_dump($matches); // Question is: How to get same output with just only one preg_match preg_match('/phones(SUBPATTERN)home phones/', $data, $result_data); // Where SUBPATTERN is a pattern that would do exactly what 2nd operation did // so $result_data contains what does $matches (array structure can be different can be 3 dimmensional array not only 2) 

Примеры данных: https://eval.in/138817

Примечание. Этот вопрос является еще одним подходом для получения ответа, который имел разные данные: PHP Регулярное выражение возвращает подматрицы как массив