las corchetes cuadrados...
[] descomponen las frases dentro de ellos en sus componentes, osea... en sus caracteres
por ende, si colocas una frase completa ahí no funcionará como piensas... es por ello, que no se usan para agrupar patrones, se utilizan para descomponer una frase en opciones...
por eso
[0-9] es algún numero del cero al nueve... pero
[foo] no quiere decir que captura "
foo", mas bien capturaría todo lo que contenga alguna de dichas letras...
igualmente, la negación se hace a nivel carácter... no por frases, osea pensar que
[^\.login] niega toda la frase es un error...
--
lo de tu expresión, es natural... ya que los caracteres especiales dentro de los corchetes
[#\s\w:-] hay un espacio, y por lógica... lo captura (: