Se están olvidando (a no ser que así lo necesiten) de evaluar las mayusculas y minusculas del string (en los ejemplos, AbC pasaría). Igual es cuestión de agregarle un strtoupper o strtolower.
Si quisieras hacerlo con un patern, el mismo sería simple, usarías ^abc y podrías encerrarlo en una función para tener todo más ordenado, ej:
Código PHP:
function validar( $str ){
$patern = "^abc";
return eregi( $patern, $str );
}
#Ejemplo
echo validar( "ab0Dtdt" ) ? 'si' : 'no' ; #out: no
echo validar( "abC0Dtdt" ) ? 'si' : 'no' ; #out: si
PD: usar substr en este caso, o mejor aún
strpos es mas óptimo.