protected function tryParseInlineLinkAndTitle(Cursor $cursor)
{
if ($cursor->getCharacter() !== '(') {
return false;
}
$previousState = $cursor->saveState();
$cursor->advance();
$cursor->advanceToFirstNonSpace();
if (($dest = LinkParserHelper::parseLinkDestination($cursor)) === null) {
$cursor->restoreState($previousState);
return false;
}
$cursor->advanceToFirstNonSpace();
$title = null;
// make sure there's a space before the title:
if (preg_match(RegexHelper::REGEX_WHITESPACE_CHAR, $cursor->peek(-1))) {
$title = LinkParserHelper::parseLinkTitle($cursor) ?: '';
}
$cursor->advanceToFirstNonSpace();
if ($cursor->match('/^\\)/') === null) {
$cursor->restoreState($previousState);
return false;
}
return ['url' => $dest, 'title' => $title];
}