La siguiente expresión valida lo que dices y le agrega que sean de 2 a 15 caracteres (puedes quitar esa condición borrando "{2,15}":
Código PHP:
if(eregi("^[a-z0-9áéíóúñ_-]{2,15}$", $texto)) echo "valido";
else echo "invalido";
Suponiendo que en la variable $texto tienes la cadena a validar.
Saludos.