文字にマッチさせる

r = /\A[A-Za-z]+\z/
p ['ABC' =~ r, 'ABC?' =~ r, '123' =~ r, '日本語' =~ r]
#=> [0, nil, nil, nil]

r = /\A[^\W\d_]+\z/
p ['ABC' =~ r, 'ABC?' =~ r, '123' =~ r, '日本語' =~ r]
#=> [0, nil, nil, 0]

通常は前者で十分だけれど,特殊な文字(日本語とか)もチェックしたい場合は,後者のように文字以外以外の二重否定でチェックしたほうがいい.とのこと.

\Wは\w(文字+数字+アンダーバー)以外を指す.\wは全角数字にもマッチするのに対して,\dは半角数字のみなので,全角数字を無視したい場合はそれも追加する必要がある.(/\A[^\W\d_0-9]+\z/)