あるランダムな文字列をpreg_matchの第一引数に指定して、
第二引数の文字とマッチングしてマッチしたらある処理をやりたいと思っています。

ですが、第一引数に指定する文字列には正規表現で使う*+等の文字が含まれている可能性があり、
preg_matchの動作が正しく動かない可能性があります。
そこで事前にpreg_replaceで\を付けてメタ文字をエスケープしてるんですが、エスケープする対象のメタ文字もかなりあり、
漏れる可能性もあるのでこんなことしたくありません。
PHPの関数でこのメタ文字自体をエスケープする(¥をつける)関数みたいなのないですか?
もしくは代替案あったら教えてください。