Expressão regular para nome de arquivo válido

Eu já passei por alguma pergunta no StackOverflow sobre isso, mas nada ajudou muito no meu caso.

Eu quero restringir o usuário para fornecer um nome de arquivo que deve conter apenas caracteres alfanuméricos,-, _, . e espaço.

Eu não sou bom em expressões regulares e até agora eu vim com este^[a-zA-Z0-9.-_]$. Alguém pode me ajudar?