Muchas gracias por tu respuesta pateketrueke. Posiblemente pueda solucionarse sin regex, pero realmente no he encontrado otra salida. Ahora mismo acabo de conseguir tomar cada primer apellido, pero tan sólo tres veces. Si tuviera más de tres primeros la expresión regular no funcionaría. Por tanto necesito iterar la expresión: ([a-zA-ZñÑ]+)[^;]+;
E aquí el avance reflejado:
https://regex101.com/r/oQ1fJ1/3