re = /^(?!.*(\w)\1{3,}).+$/m
str = 'JHMCU26809C211501 - good
JHMGD18508S219366 - good
JHMCU268091111111 - bad
12345678901234567 - good
ASD1111111ASD2313 - bad
ASDIIIIIIIASDASD2 - bad
IIIIIIIADS1EE2345 - bad
'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html