Solo es cuestión de buscar B C D F G H J K L M N P Q R S T V W X Y Z desde el tercer caracter en adelante. Por ejemplo
Código PHP:
Ver original<?php
$str = 'perez';
preg_match('/.{2}[aeiou]*(([BCDFGHJKLMNPQRSTVWXYZ]?).*)/i', $str, $m); echo 'Apellido: ' . $m[0] . '<br />';
echo 'Segunda consonante: ' . $m[2] . '<br />';
echo 'Resto de las letras incluyendo la segunda consonante: ' . $m[1] . '<br />';
$str = 'diaz';
preg_match('/.{2}[aeiou]*(([BCDFGHJKLMNPQRSTVWXYZ]?).*)/i', $str, $m); echo 'Apellido: ' . $m[0] . '<br />';
echo 'Segunda consonante: ' . $m[2] . '<br />';
echo 'Resto de las letras incluyendo la segunda consonante: ' . $m[1] . '<br />';
$str = 'alcantara';
preg_match('/.{2}[aeiou]*(([BCDFGHJKLMNPQRSTVWXYZ]?).*)/i', $str, $m); echo 'Apellido: ' . $m[0] . '<br />';
echo 'Segunda consonante: ' . $m[2] . '<br />';
echo 'Resto de las letras incluyendo la segunda consonante: ' . $m[1] . '<br />';
$str = 'de';
preg_match('/.{2}[aeiou]*(([BCDFGHJKLMNPQRSTVWXYZ]?).*)/i', $str, $m); echo 'Apellido: ' . $m[0] . '<br />';
echo 'Segunda consonante: ' . $m[2] . '<br />';
echo 'Resto de las letras incluyendo la segunda consonante: ' . $m[1] . '<br />';