Вы используете обычный строковый литерал, поэтому \\]
означает \]
для двигателя регулярных выражений. Ваша строка содержит [
(открытие символьного класса), но не имеет закрывающей.
Когда вы добавляете пробел, вы просто сопоставляете пробел с классом символов.
Чтобы соответствовать =
следовали строка в кавычках, используйте
var rx = @"=""((?:[^""\\]*(?:\\.[^""\\]*)*))""";
См regex demo и an IDEONE demo.
Это регулярное выражение объявляется с дословными строковым литералом (так что мы используем только один \
, чтобы избежать регулярных выражений метасимволов), а также будем соответствовать всем правильно спаслись последовательность.
Если вам не нужно, чтобы соответствовать C-подобные строки с сбежавших последовательностями, просто используйте
var rx = "=\"([^\"]*)\"";
См this regex demo (я думаю, что это выглядит лучше с обычной строковой литерал -. Слишком много двойных кавычек)
Что вы на самом деле пытаетесь сопоставить? – phuzi