Invece di questo:
db.database.find({A: {$regex: '/^*(abc def)*$/''}})
Dovresti fare questo:
db.database.find({A: /abc def/i })
^* non è effettivamente una sintassi valida poiché ^ e $ sono ancore e non qualcosa che è ripetibile. Probabilmente intendevi ^.* qui. Ma non è necessario ^.* poiché significa semplicemente "Tutto fino al carattere successivo" e (abc def)* significa "0 o più volte "abc def", ma deve essere alla fine della stringa, a causa del tuo $. La "i" alla fine serve a non fare distinzione tra maiuscole e minuscole.