in reply to replacing variable in regex - probs with special chars?

Try changes your substitution to
$source =~ s/\Q$complete\E/<a href='$url'>$title<\/a>/g || print "
The "\Q" puts backslashes in front of all the special characters in '$complete'. This will make the regex treat them literally instead of a as metacharacters.