From: Tomasz Wegrzanowski Date: 2006-08-08T14:51:37+09:00 Subject: How to make objects that can set $1 when obj =~ /(.)/ is called ? Something like that would be a reasonable thing to do: class Foo def initialize(t) @text = t end def =~(x) @text =~ x end end And it works for non-capturing regexps, but when we want to capture something $1 etc. are bound only within the =~ method, and when the method returns they are restored to their previous values. Foo.new("Hello") =~ /(e)/ # => 1 $1 # => nil Is it possible to somehow get =~ like that work, even if it takes heavy metaprogramming hackery ? -- Tomasz Wegrzanowski [ http://t-a-w.blogspot.com/ ]