no, el "^" indica principo de linea, el "$" indica fin de linea
es porque si pones "????##@a_" te lo toma como valido usando tu expresion regular 
La diferencia entre tu expresion regular y la que puse yo, es que en la mia si o si tiene que empezar por una letra o numero, en cambio la tuya no. La tuya toma "__hola" como valido
es porque si pones "????##@a_" te lo toma como valido usando tu expresion regular 
La diferencia entre tu expresion regular y la que puse yo, es que en la mia si o si tiene que empezar por una letra o numero, en cambio la tuya no. La tuya toma "__hola" como valido
lo puedes hacer usando firebug o el editor de codigo de chrome "en vivo" pero... .nose 
Depende de tu navegador, hay formas de quitar el "blanco" default