La expresión regular POSIX tal como la has descrito (un caracter no-alfanumérico, seguido de tres caracteres alfanuméricos, al final de la cadena), sería algo así:
Código PHP:
$res = ereg ('[^[:alnum:]][[:alnum:]]{3}$', $cadena);
Sin embargo, nota que una cadena como "antes_del_fin" coincidiría con la expresión (el caracter '_' es no-alfanumérico).
Si por ejemplo solo deseas aceptar un punto antes de los tres caracteres alfanuméricos, la expresión regular podría ser más bien algo así:
Código PHP:
$res = ereg ('\\.[[:alnum:]]{3}$', $cadena);
Espero que estas expresiones sean fáciles de seguir y entender. Si quieres una explicación un poco más detallada podemos expandirnos un poco más :).