Se metti {15} significa che cerchi parole che siano lunghe 15 caratteri, se vuoi un range devi scrivere {,15} oppure {2,15} se non vuoi che riconosca parole con meno di 2 lettere e superiori a 15. Cmq approssimativamente puoi scrivere una cosa del genere:
eregi("[0-9a-z\*-_#]{1,15}", $nickname);
oppure
eregi("[0-9a-z\*-_#]+", $nickname);
Ma non ho capito se vuoi che nella variabile non ci siano altri caratteri al di fuori di quelli che hai descritto.
Nel caso potresti provare cosė:
if (!eregi("[^0-9a-z\*-_#]", $nickname))
# se la variabile č composta solo da quei caratteri
else # ci sono altri caratteri non desiderati