[^\s()]+)|(?R))*\) | # else match a link with title ^(https?|ftp):\/\/(([^\s()]+)|(?R))+(?context) && preg_match($pattern, $markdown, $matches)) { return [ ['autoUrl', $matches[0]], strlen($matches[0]) ]; } return [['text', substr($markdown, 0, 4)], 4]; } protected function renderAutoUrl($block) { $href = htmlspecialchars($block[1], ENT_COMPAT | ENT_HTML401, 'UTF-8'); $text = htmlspecialchars(urldecode($block[1]), ENT_NOQUOTES | ENT_SUBSTITUTE, 'UTF-8'); return "$text"; } }