Seu desafio é encontrar a extensão do arquivo de um nome de arquivo fornecido:
hi.txt -> txt or .txt
carrot.meme -> meme or .meme
lol (undefined behavior)
what..is..this..file -> file or .file
.bashrc -> bashrc or .bashrc
T00M@n3KaPZ.h0wC[]h -> h0wC[]h or .h0wC[]h
agent.000 -> 000 or .000
Você deve obter o texto do último . ou do último .até o final da string. A primeira correspondência de grupo de captura da expressão regular /\.([^.]+)$/funciona, assim como dividir a entrada em se .retornar a última.
O nome do arquivo sempre conterá pelo menos um ., mas pode conter vários .. (veja exemplos)
A entrada sempre corresponderá ^[.a-zA-Z0-9^!\[\]{}@$%+=]+$.