Estimado Adolfredo Martinez
Esta es una forma simple haciendo el proceso de separación de derecha a izquierda, yo lo utilizo en una aplicación y me funciona bien, espero le resulte útil.
********************************************************************
*** SEPARANDO NOMBRES Y APPELLIDOS
*** SUPONGAMOS UNA TABLA CON LOS SIGUIENTES CAMPOS:
*** NOMB_APE: CONTIENE LOS NOMBRES Y APPELLIDOS DE UNA PERSONA
*** NOMBRES: DONDE QUEREMOS DEJAR SOLO LOS NOMBRES
*** APELLIDO_1: DONDE QUEREMOS DEJAR EL PRIMER APELLIDO
*** APELLIDO_2: DONDE QUEREMOS DEJAR EL SEGUNDO APELLIDO
********************************************************************
VAPET=UPPER(ALLTRIM(NOMB_APE))
VAPE2=SUBSTR(VAPET,RAT(" ",VAPET)+1)
REPLA APELLIDO_2 WITH VAPE2
VAPET=ALLTRIM(SUBSTR(VAPET,1,RAT(" ",VAPET)-1))
VAPE1=SUBSTR(VAPET,RAT(" ",VAPET)+1)
REPLA APELLIDO_1 WITH VAPE1
VAPET=ALLTRIM(SUBSTR(VAPET,1,RAT(" ",VAPET)-1))
REPLA NOMBRE WITH VAPET
*******************************************************************
Saludos cordiales