I wonder if any one has ever noticed the "order" discrepancy that exists between String#<=> and String#succ. One consequence: irb(main):001:0> a = 'a'..'b' => "a".."b" irb(main):002:0> a.include?('aa') => true Also I'd like to know what others are doing with string ranges. If you've used a string range in a serious way I'd like to know how --I'm trying to get a impression of their over all usability. Thanks, T.