Sono d'accordo. Ho sperimentato questo pattern, che sembra andaer bene:
codice:
Dim File As New Regex("^\w:(\\[^\\\*\?\|\<\>""/:,]+(\.\w*)?)+$")
Dim N As String = "Prova a mettere un qualsiasi nome di file, sbagliato o giusto che sia"

'E controlla se è valido:
If File.IsMatch(N) Then
  MessageBox.Show("Valido!")
End If