my $r = bless qr/foo/, "MyPackage";
####
my $r = bless \qr/foo/, "MyPackage";
####
$ perl -le 'my $r = "bar"; print "yes" if "foobarbaz" =~ $r'
yes
####
#!/usr/bin/perl -w
use strict;
package P;
use overload '""' => sub { 'stringified' };
package main;
local $\ = "\n";
my $regex = qr/match/;
bless $regex, 'P';
my $plain = \my $t;
bless $plain, 'P';
print '"stringified" matched $regex' if "stringified" =~ $regex;
print '"stringified" matched $plain' if "stringified" =~ $plain;
__END__
"stringified" matched $plain
####
#!/usr/bin/perl -w
use strict;
package Regexp;
sub new { my $r; bless \$r }
sub f { q("I'm a Regexp.") }
package main;
local $\ = "\n";
my $qr = qr/foo/;
my $ob = Regexp->new();
print '$qr says, ', $qr->f;
print '$ob says, ', $ob->f;
print '$qr isa Regexp' if $qr->isa('Regexp');
print '$ob isa Regexp' if $ob->isa('Regexp');
print '$qr: ', $qr;
print '$ob: ', $ob;
__END__
$qr says, "I'm a Regexp."
$ob says, "I'm a Regexp."
$qr isa Regexp
$ob isa Regexp
$qr: (?-xism:foo)
$ob: Regexp=SCALAR(0x805f148)