Te comento que existe un sub-foro especializado de RegExp, ya que, aunque no lo sepas: es un sub-lenguaje embebido y tienes sus propias reglas que merecen estudio aparte.
Bueno, volviendo al tema debes simplificar al máximo tu expresión:
Cita: 1. deberia contener solo numeros y un total de 4 digitos
2. despues un guion medio (-)
3. seguido de numeros del 0 al 9 ¿cuantos? ¿es opcional?
4. este ultimo puede acabar en .es, .ar, .fr
Básicamente:
Cita: 1. ^\d{4}
2. \-
3. \d+
4. \.(?:es|ar|fr)$
Otro detalle grave en tu validación es que transformas todo a mayúsculas pero tu expresión no las incluye.
Por favor consulta la siguiente referencia:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/