Collects hyperlink spans from the buffer in a single pass, merging regex-detected
bare URLs with markdown links. Markdown links take precedence: if a markdown link’s
display text overlaps with a bare-URL span on the same row, the bare-URL span is
replaced. Only http(s) URLs are emitted for markdown links.