Today friend of my shown me problem that he encounter while he was working on his regexp-examples gem

'<'  =~ /[[:punct:]]/
# => nil

60.chr  # =>  '>'
60.chr  =~ /[[:punct:]]/
# => 0

60.chr == '<'
# => true

60.chr === '<'
# => true

It took him a while to figure out what was the problem

'<'.encoding
# => #<Encoding:UTF-8>

60.chr.encoding
# => #<Encoding:US-ASCII>

solution :

60.chr.encode('UTF-8') =~ /[[:punct:]]/
# => nil