Я уже вроде всё упростила:
$acronym = ":/";
$expansion = "[skeptical]";
$pattern = preg_quote($acronym);
$pattern = "/http$pattern/";
if (! preg_match($pattern, $tweet_text)) {$tweet_text = str_ireplace($acronym, $expansion, $tweet_text);}
И всё равно твиты с ":/" внутри обращаются в "[skeptical]", то есть preg_match его не ловит. На поступающие твиты сыплются предупреждения об неизвестных модификаторах: /, \, @ и даже _.