Any 3 letters

xxx765xxx should match
vvv123vvv should be omitted

is it possible to write proper regular expression?

Yes, it's possible, but you may find it less mind-bending just to use two
regular expressions:

  puts "match" if foo =~ /\A[a-z]{3}\d{3}[a-z]{3}\z/ && foo !~ /\A...123/

If you really want a single regexp, then you can explicitly code a match for
the allowed digit ranges:

   re = %r{\A [a-z]{3}
           ([02-9]\d\d | 1[013-9]\d | 12[0124-9])
           [a-z]{3} \z}x

Or you can be clever and use a negative look-ahead assertion:

   re = %r{\A [a-z]{3} (?!123) \d{3} [a-z]{3} \z}x

Note that %r{...}x is just a way to write regexps with embedded spaces and
newlines, so that they can be more easily understood.

HTH,

Brian.