I don't think you want to do that with one regular expression. If I
had to do it with regular expressions, I would first match text inside paragraphs, and then discard all the paragraphs that had <b> in them.
However, parsing HTML with regular expressions is an exercise in frustration. What happens if you have a newline in the tag? What happens if you have one in the paragraph? By the time you've resolved all those problems, you've written the better part of a HTML parser.
You'd be much better off using HTML::Parser, or HTML::TokeParser::Simple.