Het is omdat \b
komt alleen overeen als er aan weerszijden een woordteken staat. In uw geval is de \b
is omgeven door een spatie en een haakje openen/sluiten, die geen van beide een 'woord'-teken zijn. Daarom is de \b
wedstrijd mislukt.
Je zou kunnen doen
\\b0aef4666-3627-4c24-8e50-b0cf9a723823\\b
die overeenkomt met de \b
omdat het nu op een woordgrens staat.
Als alternatief kunt u matchen met een spatie OF begin/einde van de regel:
db.test.find({"text": /(^|\s)\(0aef4666-3627-4c24-8e50-b0cf9a723823\)($|\s)/i} )