OK I found the issue
must use *b*
This inconsistent as b finds all that start with b no matter what comes after ie b = b*
This seems consistent to me.
b* means "find all entries with b as the first letter and zero or more following letters. Thus b = b*
*b means "find all entries where the last letter is b and there are zero or more leading letters. Thus *b = jacob, *b = b, but *b <> ben.
*b* means find all entries with a b at any position in the field.