Not tested but what about
^[\w .:\\-]*$
The '\w' will cover the upper and lower case letters, digits and the underscore, and the '\\' will cover the backslash (it needs to be escaped because it is the escape character itself). Also the hyphen character must be the last one in the character set or else it must also be escaped to stop it being interpreted as the range operator.
I've interpreted "and spaces" as being just the space character (\x20) - if you intend to allow other whitespace characters such as tabs, carriage returns etc , then use the '\s' instead of the ' ' in the character set definition, but this may lead to other issues when the entered text is actually used as a file name.
Note that this will check the characters but not the structure of the text (i.e. it will allow "asd:::\\\\dsa....dsa-s-d-345")
Susan