re = /(?<variable><variable.+?source=[\\]*"(?<source>.*?)[\\]*".*?>.*?<\/variable>)/
str = 'customtracking=\\"[{"name":"utm_source","value":"Loopify"},{"name":"utm_campaign","value":""},{"name":"utm_medium","value":"Page"},{"name":"utm_content","value":"<variable contenteditable=\\\\"false\\\\" name=\\\\"link type\\\\" source=\\\\"campaign.linkType\\\\" placeholder=\\\\"\\\\" date-locale=\\\\"\\\\" date-format=\\\\"\\\\">link type</variable>"}]\\" class=\\"loopify-link\\">aliquam</a>, lobortis ante eu, consectetur nulla. Sed vitae posuere purus. Vivamus pretium et ipsum vel pretium. Nunc elementum tempus magna id iaculis.","button1":"Google","button2":"Read more"},"link1":{"type":"website","url":"https://www.google.com","uuid":"1a61717c-a686-4683-450c-5fa775b74b6f","target":"_blank","title":"","customTracking":[{"name":"utm_source","value":"Loopify"},{"name":"utm_campaign","value":"<variable contenteditable=\\"false\\" name=\\"campaign name\\" source=\\"campaign.campaignName\\" placeholder=\\"\\" date-locale=\\"\\" date-format=\\"\\">campaign name</variable>"},{"name":"utm_medium","value":"Page"},{"name":"utm_content","value":"<variable contenteditable=\\"false\\" name=\\"link type\\" source=\\"campaign.linkType\\" placeholder=\\"\\" date-locale=\\"\\" date-format=\\"\\">link type</variable>"}]}'
# 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