$re = '/((^|\ )((\d{1,3})(.(\d{3}))+(\,\d{2}?€)))|(^|\ )((\d+(\,\d{2})?€)) /m';
$str = '3,56€ 1000.000,00€ 3,568€ 1000.00,00€ 0.001.200
0,56 0,56€ 0,56 € 3€ 167.555.178,00€ 100.005.000,00€ 167.555,00€ 1.067,00€ 000.555
567.555,00€ 167.555,00€ 167.555,00€
100000,00€ 100000€
100.000.000,00€ 100.000000,00€';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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