Por que meu regex PHP que analisa os links do Markdown está quebrado?

<code>$pattern = "/\[(.*?)\]\((.*?)\)/i";
$replace = "<a href=\"$2\" rel=\"nofollow\">$1</a>";
$text = "blah blah [LINK1](http://example.com) blah [LINK2](http://sub.example.com/) blah blah ?";
echo preg_replace($pattern, $replace, $text);
</code>

O acima funciona, mas se um espaço é inserido acidentalmente entre [] e () tudo quebra e os dois links são misturados em um:

<code>$text = "blah blah [LINK1] (http://example.com) blah [LINK2](http://sub.example.com/) blah blah ?";
</code>

Eu tenho a sensação de que é a estrela laxy que a quebra, mas não sabe como combinar os links repetidos.

questionAnswers(2)

yourAnswerToTheQuestion