I prefer to do my Joins individually by type. I also only use Replace ALL for these 2 (I have a number of others for special instances that I step thru and Skip false positives)
(The code was snipped from my saved Search file. so things sown are 'escaped'. They also takeinto consideration valid punctuation marks)
Code:
74\Name=Cleanup/Joins/Join to upper
74\Find="([[:alpha:],][\"\x201d\xe2\x80\x9d]*)</p>\\s*<p\\b[^>]*>([A-Z\xe2\x80\x9c\"])"
74\Replace=\\1 \\2
75\Name=Cleanup/Joins/To Lower
75\Find="\\s*([a-z],*)</p>\\s+<p class=\"calibre1\">([a-z])"
75\Replace=\\1 \\2