Hallo,
$json_text = preg_replace("!(^|[^"=]{1})(#|@)([^\s<>]+)([\s\n<>]|$)!sme", "'\1<a href="" . (('\2' == "#") ? "http://search.twitter.com/search?q=\3" : "http://twitter.com/#!/\3") . "" target="_blank">\2\3</a>\4'", $json[$i]->{'text'});
Du hast dort mindestens einen Kontextwechsel, wenn du den String des "$replacement" verkettest, den du nicht beachtest. Ansonsten kann ich [conditional subpatterns](http://www.php.net/manual/de/regexp.reference.conditional.php) empfehlen.
Grüße