re = /\\plain(?:(?!\\plain).)*\\field{\\\*\\fldinst{ HYPERLINK "(.*?)" }}{\\fldrslt{(.*?)}}}}\\plain.*? /m
str = '\\plain\\f2 This is the first part of the note. This is the second part of the note. This is the \\plain\\f2\\fs24\\cf6{\\txfielddef{\\*\\txfieldstart\\txfieldtype1\\txfieldflags144\\txfielddataval44334\\txfielddata 35003800380039000000}{\\*\\txfielddatadef\\txfielddatatype1\\txfielddata 340034003300330034000000}{\\*\\txfieldtext 20{\\*\\txfieldend}}{\\field{\\*\\fldinst{ HYPERLINK "44334" }}{\\fldrslt{20}}}}\\plain\\f2\\fs24 part of the note.
\\plain\\f2 This is the first part of the note. This is the second part of the note. This is the \\plain\\f2\\fs24\\cf6{\\txfielddef{\\*\\txfieldstart\\txfieldtype1\\txfieldflags144\\txfielddataval44334\\txfielddata 35003800380039000000}{\\*\\txfielddatadef\\txfielddatatype1\\txfielddata 340034003300330034000000}{\\*\\txfieldtext 20{\\*\\txfieldend}}{\\field{\\*\\fldinst{ HYPERLINK "44334" }}{\\fldrslt{20}}}}\\plain\\f2\\fs24'
# 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