buuu y si usas create_function() ?
Código PHP:
<?php
$bar = 'pais <a href="pais"> pais'; // palabra
$search = 'pais'; // buscar
$replace = 'chile'; // reeplazar siempre que no sea un href de un <a>
echo preg_replace_callback("/(<a .*?href=['\"].*?$search.*?['\"].*?>|$search)/i",
create_function('$e', 'return $e[0] == strip_tags($e[0]) ? $GLOBALS["replace"] : $e[0];'), $bar);
www.php.net/create_function
saludos.
---
EDITO: ya lo lograste... ;D.. excelente