Perhaps I'm not seeing the trees for the forest, but is there a simple way to check if the user has provided valid input data? In this case, I need to check if the user has input a valid string of 'project phases'. The *order* of the string characters does not matter, what *does* matter is that *only* the following characters are valid: "" D E F 1 2 3 4 5 6 7 8 9 0 IOW: "" would be perfectly fine "FE" would be perfectly fine "4E312" would be perfectly fine "235G1" would be partially valid (G invalid) "WACBP" would NOT be valid What follows is what I've come up with thus far - it seems straightforward enough to me, and I *think* it should work - but I can't help but think it borders on "klunky", which I why I'm asking here. If there's a faster or more elegant way, I'd sure like to hear about it: ; Set to Upper Case and convert to char list (setq Phase_lst (vl-string->list (strcase PhaseInput_str)) );_end setq (setq ValidChar_lst ; 0 1 2 3 4 5 6 7 8 9 D E F '(48 49 50 51 52 53 54 55 56 57 68 69 70) );_end setq ; remove invalid chars from list ; did user input anything other than ""? (if Phase_lst ; then (setq Phase_lst (vl-remove-if-not '(lambda (ele) (member ele ValidChar_lst) ) Phase_lst ) ) ; else ; );_end if Any suggestions? Appreciatively, David Kozina