To begin with, your regexp expects exactly zero spaces after the attribute, thus it won't match your actual HTML with exactly one space:
/<div data-phone="(.*)"class="agency_phone "
<div data-phone="01 55 33 44" class="agency_phone ">
In any case it's very hard to write a decent HTML parser from scratch using regular expressions. The easiest way is DOM and XPATH, e.g.:
<?php
$html = '
<div data-phone="01 55 33 44" class="agency_phone ">
Phone
</div>
<p>Unrelated</p>
<div>Still unrealted</div>
<div data-phone="+34 947 854 712" class="agency_phone ">
Phone
</div>
';
$dom= new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$phones = $xpath->query('//div/@data-phone');
foreach ($phones as $phone) {
var_dump($phone->value);
}
string(11) "01 55 33 44"
string(15) "+34 947 854 712"