You're selecting the last character before the close paragraph tag with
[^.] so when you replace you have to put it back, otherwise it gets overwritten with your replace string (nothing, in this case).
Code:
Search: ([^.])</p><p class="calibre2">
Replace: $1
$1 can also be
\1 on some regex systems. The enclosing paragraphs mark the match for reuse in replacements. Every successive set of paragraph tags (up to 9, I think) can be returned to your replacement string via $1, $2, etc.
cap