re = /^(?:[^"'\n]*(?:"(?:[^"\n]|"")*"))*[^']*('(?:_\n|.)*)/m
str = 'ewr "Having ""quoted"" quotes couldn\'t work, could they"? "Yeah, they do!" \'Great
Working - This is a test \'This should be captured
Working - "this is a test" \'This should be captured
Not Working - "this is a test" \'This should be "captured"
Not Working - This is a test \'This should be "captured"
Working - "this is a test \'this should not capture\'" \'this should capture
Working - "this isn\'t a test" \'this should capture
\'Comment with a line _
continuation
Debug.Print \'End of line comment _
with line continuation.
Debug.Print 42 \'The next line... _
"...is not a string literal"
Debug.Print "Unmatched double quotes." \'Comment"
Debug.Print "Interleaved single \'n double quotes." \'Comment"
\'No comments or strings in the line below.
Debug.Print [Evil:""Comment"\'here]
'
# 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