I tested this and the bug appears to be in do_markup in ubbthreads.inc.php. The text going in is correct but coming out, it's wrong.
Text such as this in a post:
http://www.example.com/page.html
results in this HTML
<a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank"></a><a href="http://www.example.com/page.html" target="_blank">http://www.example.com/page.html</a>
A similar thing happens to [ url ]link[ /url ] code (except the links are nested).
One doesn't notice because all but one of the ten links are empt y and don't show on the browser, but this needs to be fixed. Besides being untidy and wasteful in the database, Google is likely to think the page is rigged to throw off their rankings and exclude them.
I think the problem is that more than one entry in the $regexes array is hitting the same link. I think they probably need to be broken up into "run all these" and "run until one of these is found" expressions.
After looking at the code awhile, I give up. No idea why it's happening. Those regex's will drive you mad.