it returns results, but it also includes keywords that have 'Biblical ethics' as a substring of another keyword. But if I add ^ and $ characters it doesn't match anything:
In the Bookends documentation it says that ^ matches the beginning of a line, but actually I think it matches the beginning of the field (similar for $).
Regex searches have to be told if the field is multiline or it will not find matches after the first return. To do case-insensitive, multiline searches add