Я бы начал с регулярного выражения, чтобы разделить группы:
Regex rx = new Regex(@"(?<!\\),");
String test = "OU=James\\, Brown,OU=Test,DC=Internal,DC=Net";
String[] segments = rx.Split(test);
Но оттуда я бы разделил параметры в массиве, разделив их вручную, чтобы вам не приходилось использовать регулярное выражение, зависящее больше от используемого символа разделителя. Так как это похоже на запрос LDAP, это может не иметь значения, если вы всегда смотрите на params [0], но есть вероятность, что имя может быть установлено как «CN =». Вы можете охватить оба случая, просто прочитав запрос следующим образом:
String name = segments[0].Split('=', 2)[1];