re = /^(?<product_identifier>[\w\d]+)-(?<major>\d+)\.(?<minor>\d+)-(?<feature_version>\d+)(-(?<support_release_suffix>\w+))?$/m
str = 'irma6r1-1.1-1
irma6r2-1.1-1
irma6r1-1.1-1-with_valid_support_suffix
irma6r2-1.1-1-with-invalid-support-suffix
irma6r2-1.1-with_missing_feature_version
irma6r1-1.0-1
matrix-1.0-1'
# 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