Wow, it worked.
If it's not evident by now I'm not very experienced in regular expressions. Can you explain what the added statement does?
Let me give some examples of what I'm doing. If you have any suggestions on improving my regex I'd appreciate it.
ad : true, because it has a vowel followed by a single consonant - [aeiouy][\w&&[^aeiouyrw]]
add: false, because it has two consonants - $
ban: true, single consonant after vowel, any consonant can come before the vowel - (\w*?[\w&&[^aeiouy]]+?)*?)
band: false, two consonants
bath: true, th is a digraph and makes a single sound - [aeiouy](ch|sh|wh|th|ph|gn|kn|ck|wr|[\w&&[^aeiouyrw]]) (the r & w are for words like war (ar) and bow (ow) these are another whole different case)
mad: true
maid: false, can't have adjacent vowels - (\w*?[\w&&[^aeiouy]]+?)*?[aeiouy]
yap: true, y is a consonant at the begining of a word - (y??(\w*?[\w&&[^aeiouy]]+?)*?)
When you get into multi-syllable words you have to take each syllable individually
diner: false, di-ner single consonant goes with next syllable
dinner: true, din-ner consonants split then use the above rules on each syllable - ([\\w&&[^aeiou]]+?[aeiouy]+?\\w*?)*? (tacked on to disregard any following syllables)
zebra: false, ze-bra typically consonants split, but blends (br) stay together and go with next syllable
Let me know if I can explain the rules or parts of my regex better.