$re = '/<h2>Dollarkurs\sAktuell<\/h2><\/div><div[^>?]+><div><table><colgroup><col[^>?]+><col><col[^>?]+><\/colgroup><tbody><tr><td[^>?]+>Kurs<\/td><td[^>?]+>([^\s^<?]+)\s*<span[^>?]+>(\+|-)?\d+\,?\d{0,2}%<\/span><span[^>?]+><\/span><\/td><\/tr><tr><td[^>?]+>Kurszeit<\/td><td[^>?]+>(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?\sUhr<\/td><\/tr><tr><td[^>?]+>Kursdatum<\/td><td[^>?]+>([0-9\.]+)<\/td>/mi';
$str = '<h2>Dollarkurs Aktuell</h2></div><div class=\'content\'><div><table><colgroup><col width=\'50px\'><col><col width=\'100px\'></colgroup><tbody><tr><td class=\'bold\'>Kurs</td><td class=\'textRight\' colspan=\'2\'>1,0947 <span class=\'distanceLeft right green\'>+0,58%</span><span class=\'distanceLeft right imageIconPriceGreen\'></span></td></tr><tr><td class=\'bold\' colspan=\'2\'>Kurszeit</td><td class=\'textRight\'>16:00:00 Uhr</td></tr><tr><td class=\'bold\' colspan=\'2\'>Kursdatum</td><td class=\'textRight\'>28.04.2015</td>';
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