Second, you need to add ^ and $ to match the beginning and end of the string respectively, to get any text before and after the first and last links.
Adapting the code you provided, it'd look something like this:
s/(^¦\<\/a>).*?(\<a([^>]+)>([^<]+)¦$)/$1$2/g; In PHP, just cause I did that...
$string = $string = preg_replace("/^¦(\<\/a>).*?(\<a([^>]+)>([^<]+))¦$/","\\1\\2", $string);