re = /HARRY((?:(?:(?!HARRY|DIVISION 3).|[\r\n])*?)DIVISION 3)/m
str = 'S3007/0011
20150590824
HARRY MOSES
F
32
DIVISION 4
CIV-\'F\' HIST-\'D\' GEO-\'F\' KISW-\'D\' ENGL-\'D\' PHY-\'F\' CHEM-\'F\' BIO-\'F\' B/MATH-\'F\'
S3007/0012
20151514797
HARRY MORGAN
F
26
DIVISION 3
CIV-\'D\' HIST-\'C\' GEO-\'D\' KISW-\'C\' ENGL-\'C\' PHY-\'F\' CHEM-\'F\' BIO-\'D\' B/MATH-\'F\'
S3007/0013
20151514798
HAPPINESS DEOGRATIAS
F
34
DIVISION 0
CIV-\'F\' HIST-\'F\' GEO-\'F\' KISW-\'D\' ENGL-\'F\' PHY-\'F\' CHEM-\'F\' BIO-\'F\' B/MATH-\'F'
# 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