First of all, even if your don't take into account the bad news below, your regexp would not match what you are trying to match.
Code:
^(.*)/p-\#bookmark(.*)\.html$
would match
Code:
/blabla/p-blibli/#bookmark567.html
But now the real bad news: what you want to do is not possible because the '# portion' is not part of the request to the server. This '# portion' is a named anchor and will cause the browser to scroll to that anchor if it can find it in the document it requested.
If I take your example url:
Code:
/somethinghere/p-herealso/#bookmark112
the actual request sent to the server would be
Code:
GET /somethinghere/p-herealso/ HTTP/1.1
It is therefore not possible to take any rewrite action on the named anchor since the server does not know about it.