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


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
