Регулярное выражение зависает

Здравствуйте.
Пытаюсь выполнить вот такой код:

		public JObject Extract()
		{
			if (!string.IsNullOrEmpty(WebPageCode))
			{
				string pattern = @".*ytcfg\.set\((.*{.*\})\);";
				Regex regex = new Regex(pattern);
				MatchCollection matches = regex.Matches(WebPageCode);
				if (matches.Count > 0)
				{
					string t = matches[0].Groups[1].Value;
					JObject j = Utils.TryParseJson(t);
					return j;
				}
			}

			return null;
		}

Зависает на строчке if (matches.Count > 0). Если подождать что-то типа 2-3 минуты, то развисает и успешно выполнятся. Почему так долго и почему именно на этой строчке? :thinking:
Анализируемый текст весит 617 КБ. На сайте regex101.com выполняется мгновенно.

Блин, ну вот как всегда. Только запостил и обнаружил слэш перед точкой. Откуда он взялся - я не знаю. Его не должно быть.
Хотя, нет, стоп :thinking: Всё правиьно. Слеш ведь должен быть. Чтобы точка обрабатывалась как текстовый символ. Но без него работает, а с ним виснет. Как так? :thinking:

А сейчас запускаю - опять тормозит. Хоть со слешем, хоть без него.
Почему такой рандом? :thinking:

Вот так не тормозит:

				string pattern = @"(ytcfg\.set)\(.*({\s*"".*})\);";
				Regex regex = new Regex(pattern, RegexOptions.Singleline | RegexOptions.Compiled);
				MatchCollection matches = regex.Matches(WebPageCode);
				if (matches.Count > 0 && matches[0].Groups.Count > 2)
				{
					string t = matches[0].Groups[2].Value;
					JObject j = Utils.TryParseJson(t);
					return j;
				}

Но он не то ищет.
А на сайте всё норм:


Написано, что нужная инфа находится в группе с индексом 2.

Оказалось, что паттерн был неправильный. Очень странно, что при неправильном паттерне поиск циклится :thinking:
И ещё. Кажется, что на сайте и в C# немного разные версии регулярок :thinking:

Так он не циклится, просто видимо долго перебирает все возможные варианты, наверно тут получается что-то сложное из-за кучи *