Zdá se to jako stará otázka, takže možná jste již měli řešení, ale zde, jak jsem vyřešil stejný problém:
@Query(value = "{'title': {$regex : ?0, $options: 'i'}}")
Foo findByTitleRegex(String regexString);
pomocí /?0/
zápis nebude fungovat, protože Spring Data umístí hodnotu String do uvozovek