re = /([a-zA-Z0-9\/<]){9}[0-9]([A-Za-z]){3}([0-9]){6}([0-9])([MmFf\<])([0-9])([0-9]){6}([a-zA-Z0-9\/<]){14}([0-9]){2}/m
str = '#Fictional MRT
L898902C<3UTO6908061F9406236ZE184226B<<<<<14
#Sample USA
3400072370USA6707046F1608078910000193<113538
#Sample JPN
XS12345673JPN7902206F1101018<<<<<<<<<<<<<<00
#Sample UK
4580059179GBR7310216M1602135<<<<<<<<<<<<<<06
'
# 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