Hi, I'm trying to creating a regex that will match a string that starts and ends with an alphanumeric character, and has alphanumeric characters or dashes in the middle. This regex gives the expected result: irb(main):008:0> /^[:alnum:][A-Za-z0-9\-]*[A-Za-z0-9]$/ =~ "apple!" => nil irb(main):009:0> /^[:alnum:][A-Za-z0-9\-]*[A-Za-z0-9]$/ =~ "apple" => 0 This regex works as expected on "apple!", but returns nil on "apple": irb(main):010:0> /^[:alnum:][A-Za-z0-9\-]*[:alnum:]$/ =~ "apple!" => nil irb(main):011:0> /^[:alnum:][A-Za-z0-9\-]*[:alnum:]$/ =~ "apple" => nil Can anyone explain this? Thanks, Jeff