Проблема в. * В конце первой строки шаблона. Это жадно соответствует "nördliche Breite, 1".
Возможно, вам следует изменить его на ". *", Чтобы он знал, когда остановиться?
Pattern p1 = Pattern.compile
("("+ zahl +"[°/| ]{1,2}"+ zahl +"(['′/| ]{1,2}("+ kommazahl +")?)?).*, "
+"("+ zahl +"[°/| ]{1,2}"+ zahl +"(['′/| ]{1,2}("+ kommazahl +")?)?).*");
Конечно, это будет работать только в том случае, если между двумя значениями, которые вы хотите использовать в остальных ваших данных, всегда есть «запятая».