I'm trying to match an expression under the cursor.
In this case it happens to be reStructuredText, however I don't think that's such an important detail.
While this works, it depends on the cursor being at the beginning of the expression.
(search-forward-regexp "\\(\\:[a-zA-Z0-9_]+\\:`.+?`\\)" nil t 1)
Since there could be multiple matching expressions on a single line, what's a reliable way to find an expression under the cursor, where the cursor can be anywhere between the start/end of the expression.