Мои инстинкты говорят мне что-то вроде ...
preg_match("/^bq\. (.+?)\n\n/s", $input, $matches)
Точно так же, как говорит вышеупомянутый парень, флаг s
после /
в конце RegEx означает, что .
будет соответствовать символам новой строки. Обычно без этого регулярные выражения являются чем-то вроде одной строки.
Тогда знак вопроса ?
после .+
обозначает не жадное совпадение, так что .+
не будет совпадать, как может; вместо этого он будет соответствовать минимально возможному, так что \n\n
будет соответствовать первой доступной двойной строке.
В какой степени вы планируете поддерживать функции текстиля? Потому что ваш RegEx может быть довольно сложным, так как текстиль позволяет такие вещи, как ...
bq.. This is a block quote
This is still a block quote
или ...
bq(funky). This is a block quote belonging to the class funky!
bq{color:red;}. Block quote with red text!
Все, с чем ваша техника замены регулярных выражений не сможет справиться, метинкс.