以下のように、@a?, @a! がインスタンス変数とされるのは変では
ないでしょうか。

% ./ruby -ve '@a = "x"; p "[#@a?][#@a!]"'
ruby 1.9.0 (2008-05-02 revision 16286) [i686-linux]
-e:1: warning: instance variable @a? not initialized
-e:1: warning: instance variable @a! not initialized
"[][]"
-- 
[田中 哲][たなか あきら][Tanaka Akira]