my $re1=qr/foo$/; my $re2=qr/foo$/m; $,="\t"; $\="\n"; # just for output print tf(qr/$re1/), tf(qr/$re1/m); print tf(qr/$re1$/), tf(qr/$re1$/m); print tf(qr/$re2/), tf(qr/$re2/m); print tf(qr/$re2$/), tf(qr/$re2$/m); sub tf { "$_[0] ".("foo\nbar\n"=~$_[0]?"T":"F") } __END__ (?^:foo$) F (?^:foo$) F (?^:(?^:foo$)$) F (?^m:(?^:foo$)$) F (?^m:foo$) T (?^m:foo$) T (?^:(?^m:foo$)$) F (?^m:(?^m:foo$)$) T