page = Regex.Match(page, "/message/(.*?)\"").Groups[1].Value;
Так он дает первое совпадение. А как вывести, к примеру, второе или третье
без цикла и page.NextMatch();?
Нужно использовать функцию Matches, которая ищет сразу все совпадения.
string pattern = @"\b\w+es\b";
Regex rgx = new Regex(pattern);
string sentence = string sentence = "Who writes these notes?";
var allMatches = rgx.Matches(sentence);
/* берём первый элемент */
Console.WriteLine(allMatches[1]);
тестируем код тут.
Как я понимаю вы хотите без лишних операций сразу найти второе вхождение, но так не получится, так как алгоритм в любом случае должен найти первое вхождение что бы понять какое второе и так далее.
То есть для нахождение второго и третьего первое в любом случае придётся найти, но вот 4,5,6 уже по своей сути можно не искать. В этом случае можно итерировать через NextMatch() до нахождения последнего вхождения которое вам нужно.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости