$re = '/(\+420|\+421)?[\s.-]?(\d{3})[\s.-](\d{3})[\s.-](\d{3})/mu';
$str = 'tel.: +420 257 110 111
fax: +420 257 322 121
<br />tel.: 541 215 662<br />fax: 541 211 431<br />
<p>mob: 605 264 176</p>
<p>mobil: 731 154 552</p>
<p>tel.: 603 162 276</p>
';
$subst = "<a href='tel:$1$2$3$4'>$1 $2 $3 $4</a>";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php