В основном это должно работать:
^[IVXLCDM]+\. [^\p{Ll}]+?$
Это будет соответствовать заголовкам, содержащим цифры и символы, но явно исключит строчные буквы Юникода.
Также убедитесь, что вы используете опцию RegexOptions.Многострочный, вот так: (где inp
- ваша входная строка)
foreach (var match in
Regex.Matches(inp,
@"^[IVXLCDM]+\. [^\p{Ll}]+?$",
RegexOptions.Multiline))
Console.WriteLine(match.Value);