* whitec (test for a whitespace char)
* nonwhite (inverse of above)
* alphadig (test for alphanumeric chars)
* punc (true for any of [.,;:!?])
With the functions all and some, and a little subseq-fu you should be able to do what you want.
edit: Also look around the forum here for a patch to subseq to support negative indices for slicing off the end.