Você provavelmente quis dizer !~ , "não corresponde à expressão regular", em vez de != , "não é igual a".
Para $var =~ regexp e $var !~ regexp , o padrão à direita não deve ser citado. Para == e != , você pode citar a parte à direita (e de fato eu encorajaria isso).
Como != espera uma string, " [yY] não foi analisado como uma expressão regular. Em vez disso, o shell expandiu para" qualquer arquivo cujo nome seja y ou Y ". E como você não o fez t tem um, a casca reclamou.
Esse tipo de coisa, a propósito, é por isso que eu prefiro não escrever scripts no tcsh, mesmo que eu use como meu shell interativo.