2010/4/29 Brian Ford <redmine / ruby-lang.org>:
> Bug #3217: Regexp fails to match string with '<' when encoding is UTF-8
> http://redmine.ruby-lang.org/issues/show/3217

A minimized test case:

% ruby-1.8 -ve 'p(/[[:punct:]]/u =~ "<")'
ruby 1.8.8dev (2010-04-29 revision 26840) [i686-linux]
0
% ./ruby -ve 'p(/[[:punct:]]/u =~ "<")'
ruby 1.9.2dev (2010-04-29 trunk 27549) [i686-linux]
nil
% ./ruby -ve 'p(/[[:punct:]]/e =~ "<")'
ruby 1.9.2dev (2010-04-29 trunk 27549) [i686-linux]
0

It seems the definition of "[:punct:]" in unicode encoding in
Ruby 1.9 (oniguruma) is according to Unicode punctuation.
But Ruby 1.8 (and EUC-JP encoding in Ruby 1.9) is according to POSIX.
-- 
Tanaka Akira