re = /^\w0-1P(?:([\w-])(?!(-)\1{1}))*$/m
str = 'R0-1P-10-8--F--YH-
10-1P-3E-Q-
[\\w-]*(-)\\1{1}
D0-1P
D0-1P-'
# 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