sentences <- "The ground was rocky with no cracks in it\r\nNo diggedy, no doubt\r\nUnderstandably, there is no way an elephant can be green"
rx <- "(?mxi)^ # Start of a line
(?: # Outer container group start
(?!.*\\b(?:with|there\\h(?:is|are))\\h+no\\b) # no 'with/there is/are no' before 'no'
.*\\bno\\b # 'no' whole word after 0+ chars
(?![?:]) # cannot be followed with ? or :
| # or
.* # any 0+ chars
[?:]\\h*n(?![a-z]) # ? or : followed with 0+ spaces, 'n' not followed with any letter
) # container group end
.* # the rest of the line and 0+ line breaks
\\R*"
res <- gsub(rx, "", sentences, perl=TRUE)
cat(res, sep="\n")
c2VudGVuY2VzIDwtICJUaGUgZ3JvdW5kIHdhcyByb2NreSB3aXRoIG5vIGNyYWNrcyBpbiBpdFxyXG5ObyBkaWdnZWR5LCBubyBkb3VidFxyXG5VbmRlcnN0YW5kYWJseSwgdGhlcmUgaXMgbm8gd2F5IGFuIGVsZXBoYW50IGNhbiBiZSBncmVlbiIKcnggPC0gIig/bXhpKV4gIyBTdGFydCBvZiBhIGxpbmUKKD86ICAgICAgICAgICAjIE91dGVyIGNvbnRhaW5lciBncm91cCBzdGFydAogICg/IS4qXFxiKD86d2l0aHx0aGVyZVxcaCg/OmlzfGFyZSkpXFxoK25vXFxiKSAjIG5vICd3aXRoL3RoZXJlIGlzL2FyZSBubycgYmVmb3JlICdubycKICAuKlxcYm5vXFxiICAjICdubycgd2hvbGUgd29yZCBhZnRlciAwKyBjaGFycwogICg/IVs/Ol0pICAgICMgY2Fubm90IGJlIGZvbGxvd2VkIHdpdGggPyBvciA6CnwgICAgICAgICAgICAgIyBvcgogIC4qICAgICAgICAgICMgYW55IDArIGNoYXJzCiAgWz86XVxcaCpuKD8hW2Etel0pICMgPyBvciA6IGZvbGxvd2VkIHdpdGggMCsgc3BhY2VzLCAnbicgbm90IGZvbGxvd2VkIHdpdGggYW55IGxldHRlcgopICAgICAgICAgICAgICMgY29udGFpbmVyIGdyb3VwIGVuZAouKiAgICAgICAgICAgICMgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgYW5kIDArIGxpbmUgYnJlYWtzClxcUioiCnJlcyA8LSBnc3ViKHJ4LCAiIiwgc2VudGVuY2VzLCBwZXJsPVRSVUUpCmNhdChyZXMsIHNlcD0iXG4iKQ==