'matcher' doesn't need to be an instance variable - it can be allocated in exec() then deleted (this makes sense as the pattern isn't constant).