En lugar de esto:
db.database.find({A: {$regex: '/^*(abc def)*$/''}})
Deberías hacer esto:
db.database.find({A: /abc def/i })
^* en realidad no es una sintaxis válida ya que ^ y $ son anclas y no algo que se pueda repetir. Probablemente quisiste decir ^.* aquí. Pero no hay necesidad de ^.* ya que simplemente significa "Todo hasta el siguiente carácter" y (abc def)* significa "0 o más veces "abc def", pero tiene que estar al final de la cadena, debido a su $. La "i" al final es para que no distinga entre mayúsculas y minúsculas.