O argumento para -regex precisa corresponder ao caminho inteiro encontrado. Um comando como find . encontra caminhos como ./dir/subdir/somefile , enquanto um comando como find ~/dir encontra caminhos como /home/adam/dir/subdir/somefile . Então seu regexp tem que combinar com o
/home/adam part no começo.
O comando find -E . -type f -regex '^\..*[^~]' localiza arquivos cujo nome não contém uma nova linha e não termina com ~ . O . no início sempre corresponde desde que o caminho começa com ./ .
Se você estivesse procurando por arquivos de ponto, precisaria permitir um prefixo de diretório. O comando a seguir mostra arquivos de pontos cujo nome não termina em ~ :
find -E /whatever -regex '(\n|.)*/\.[^/]*[^~]'
Mas isso é mais simples de expressar com -name :
find /whatever -name '.*[!~]'