There are a couple tricks required to get this right.
First, this particular problem is a lot easier if you approach it backwards, starting at the end of the sting.
(abb,bab) is an exhaustive list of all the cases in which
b is preceded by 2 different letters. If you want to exclude these cases, you just have to ensure that
b is preceded by less than 2 letters, or a double letter.
Second, notice that these rules imply that if there are 2
bs in a row, then they must be preceded by
b all the way to the start of the string. Otherwise the second-to-first
b will be preceded by
Working from the end, then, we can have a free mixture of
aab, and then there are only a few ways to get to the beginning of the string when we encounter a
b outside of that pattern: