Если вы хотите сопоставить это единственное значение, вы можете использовать положительный вид сзади и класс отрицанных символов:
(?<=\[Regn,=,)[^]\r\n]+(?=\])
Пояснение
(?<=\[Regn,=,)
[^]\r\n]+
Класс отрицательных символов, не соответствует ]
или символу новой строки (Добавьте то, что вы также не хотите совпадать ( (?=\])
Утвердите, что справа]
См. Демонстрационную версию .NET regex или C # DEMO
string[] strings = { "LUB", "Pgm", "Regn", "Month", "Year", "Bywhat" };
foreach (string s in strings)
{
string filter = @"[[LUB,=,COMMERCIAL],AND,[Pgm,=,PRIVATE],AND,[Regn,=,Rasna],AND,[Month,=,06],AND,[Year,=,2018],AND,[Bywhat,=,M]]";
string pattern = string.Format(@"(?<=\[{0},=,)[^]\r\n]+(?=\])", s);
var m = Regex.Match(filter, pattern);
Console.WriteLine(m.Value);
}
Результат
COMMERCIAL
PRIVATE
Rasna
06
2018
M