PHP初心者で本を片手に、ダウンロードしてきた
プログラムをテストしたりしているのですが、
(初心者的に)理解できない振る舞いがあったので
誰か教えていただけないかと…

サーバ:ロリポップのレンタルサーバ
PHPのバージョン:4.3.11
スクリプトのエンコーディング:SJIS

という環境なんですが、

var $str1 = "テスト";

$str2 はフォームからテストと入力すると

ereg($str1, $str2) ⇒ 偽

になるので、はまっていました。
色々ためしたら、下の2つの書き方では真になるのが
判明したのですが、その理由がよくわかりません。

mb_ereg($str1, $str2) ⇒ 真
ereg($this->str1, $str2) ⇒ 真


mb_eregで正しく動くようになったのは
日本語の処理絡みなんだと思うのですが、
$this->str1にしたら、eregのままでも
だいじょうぶになったのは、なぜなんでしょうか…。