$re = '/\n\s*[\w\s\.?äöüÄÖÜß\-?]+\n[\s*^GEB$|\s*^ADR$]/';
$str = ' 2 blabla: 1/2
Title. Surname-AlsoPartOfTheName Lastname
GEB: 1111-00-00 ADR: addr ress 00, town 0000
a 0000/0000 blablabla 0000-00-00, Urkunde 0000-00-00, blabla
0000-00-00 blabla
b 0000/0000 blabla
c 0000/0000 blabla
d blabla
3 blabla: 1/2
Title. Surname MiddleName Lastname
GEB: 0000-00-00 ADR: addr res 00, town 0000
a 0000/0000 blabla 0000-00-00, blabla 0000-00-00, blabla
0000-00-00 blabla
b 0000/0000 blabla
c 0000/0000 blabla
d blabla';
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