using System.Text.RegularExpressions;
public static void Main()
const string PATTERN = @"^(?<root>\w:\\[\\\w\s]*\\sql)\\(?<database>[\w\s]+?)\\(?<type>[\w\s]+?)(?:\\(?<schema>[\w\s]+?))?\\(?<file>[\w\s\-\.]*)\.sql$";
Match match = Regex.Match("c:\\FF\\SQL\\FacultyForce\\Functions\\dbo\\file.sql", PATTERN, RegexOptions.IgnoreCase);
Console.WriteLine(match.Groups.Count + " groups matched}");
foreach(var g in match.Groups){
Console.WriteLine("-----------------------------------");
Console.WriteLine("Root: " + match.Groups["root"]);
Console.WriteLine("Database: " + match.Groups["database"]);
Console.WriteLine("Type: " + match.Groups["type"]);
Console.WriteLine("Schema: " + match.Groups["schema"]);
Console.WriteLine("File: " + match.Groups["file"]);