In findColonNoLinks replace:
if( $pos === false) {
with
if( $pos === false || $pos == strlen($str)-1) {
Rationale: currently this input renders without a colon:
;Example: :Blah blah
I don't know if there is a reported bug for this, but the behaviour has bitten me once or twice, and I don't think there's anything useful in treating a trailing colon as the start of a (non-existent) definition.
Steve PS It may be preferable to implement this by searching the left($str, strlen($str)-1) or something, but I leave that to people who actually know PHP :)