$re = '/^(\d{5})(.{7})(.{5})\s(\-{4}|[A-Z]{4})\s(.{20})\s([\d.\s]{6})\s([\d.\-\s]{7})\s([\d\-\s]{5})\s.*$/m';
$str = '99807 K3854 ---- BAD SEGEBERG 53.56 10.18 49 -12 LAND
99805 198 A762 ---- WITTENBORN 53.55 10.14 38 -2 LAND';
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