$re = '/(^(.*)\s+(\d\d\.\d\d\.)$|^(\d\d:\d\d)\s+(.*)\s+(\d+\.\d\d)$)+/im';
$str = 'WGS AUFFUELLUNGEN
ADMIN1 23.03.
17:09 -20- 1500.00
17:10 JD20 560.00
17:11 -2.0- 112.00
ADMIN1 24.03.
14:51 JD50 500.00
ADMIN2 27.03.
08:58 JD50 500.00
----------------------
3172.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