Because for example "beam" matches [^g-z]. That is, it has a letter somewhere that is not between g and z (namely e and a). I came up with ^[a-f]+$ but I'm guessing it could be shorter :)
Edit: ah, every word in left column has 4 a-f letters. So [a-f]{4} is a shorter match.
ah you're right :) I was being slow, what I thought I wrote was 'words consisting only of letters that arent g-z'
Another dumb question - why does 'beam' not match [bdf][ae] ?