Estive a testar está tua forma e não funcionou, o teu codigo aceita todos caracteres... aceita $%&@#}_ e não aceita apenas .DAT.. aceita também $DAT ou .AB.
Acho que a minha forma funcionaria bem para o que queres fazer!!
Desculpa, mas estás enganado...
Já testei no meu PC e no próprio servidor e funciona exactamente como eu quero... Não aceita $DAT nem .AB. nem % nem &, etc, etc, etc...
Ora testa lá isso mais uma vez...
O que pode acontecer é que aceite por exemplo "myname.DAT" mas não aceita por exemplo "myname.my.DAT"
Não pernitir os "." é apenas por uma questão de estética, que em nada vai afectar o código que escrevi, como é obvio, não é apenas esta parte do código que põe um utilizador "Logged in", apenas usei como demonstração.
Acredito que a tua forma tambem funcione, mas a que escrevi tambem está a funcionar bem.
De qualquer maneira, obrigado pela ajuda e pelo teu tempo.