Below code is used to validate entire statement. I've used groups to validate each part of string. See:
string s = "GlobalLib://Library5/Master Copies/New folder_1/New folder_2/PLC_3";
string pattern = @"^(?<prefix>GlobalLib://Library\d{1,})(?<constant>/Master Copies/)(?<folders>.*/)(?<libraryname>.*)$";
Match rm = Regex.Match(s, pattern);
foreach(Group grp in rm.Groups)
{
Console.WriteLine("Group name: {0}", grp.Name);
Console.WriteLine("Value: {0}", grp.Value);
Console.WriteLine();
}
So, if you would like to return only "folders" group, use this:
var folders= rm.Groups["folders"];
Console.WriteLine("{0}", folders.Value);
In analogy, to get a library name:
var lib= rm.Groups["libraryname"];
Console.WriteLine("{0}", lib.Value);
To check if entire string is matching to the pattern, use:
var valid = Regex.IsMatch(s, pattern);
Console.WriteLine("{0}", valid);