I wrote a regular expression that parses a file path into different group (DRIVE, DIR, FILE, EXTENSION).
^((?[a-zA-Z]):\\\\)*((?[a-zA
Why not just use System.IO.Path functions?
Drive: http://msdn.microsoft.com/en-us/library/system.io.path.getpathroot.aspx
Directory: http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx minus what is gotten for Drive
Filename: http://msdn.microsoft.com/en-us/library/system.io.path.getfilenamewithoutextension.aspx
Extension: http://msdn.microsoft.com/en-us/library/system.io.path.getextension.aspx