re = /^[^*]*(?:\*{2}[^ ][^*]*[^ ]\*{2}[^*\n]*)*(?:\*{2}(?: [^*]+|[^*]+ )\*{2}).*$/m
str = '**correct** This line is **correct** and **properly marked down**.
But this line **is not** because ** the second bold is wrong**.
** Also** **This Also** ** This Also ** this line is wrong **even though this is right **.
Absolutely no bold tagging in this sentence.
**correct** This line is **correct** and **properly marked down**.
But this line **is not** because ** the second bold is wrong**.
** Also** **This Also** ** This Also ** this line is wrong **even though this is right **.'
# 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