import re
def camelCase(tag_str):
words = re.findall(r'\w+', tag_str)
nwords = len(words)
if nwords == 1:
return words[0]
elif nwords > 1:
return words[0].lower() + ''.join(map(str.title, words[1:]))
return '' # no word characters
tags_str = """ 'tHiS iS a tAg, 'whitespace' !&#^ , secondcomment , no!punc$$,
ifNOSPACESthenPRESERVEcaps' """
print("\n".join(filter(None, map(camelCase, tags_str.split(',')))))
aW1wb3J0IHJlCgpkZWYgY2FtZWxDYXNlKHRhZ19zdHIpOgogICAgd29yZHMgPSByZS5maW5kYWxsKHInXHcrJywgdGFnX3N0cikKICAgIG53b3JkcyA9IGxlbih3b3JkcykKICAgIGlmIG53b3JkcyA9PSAxOgogICAgICAgIHJldHVybiB3b3Jkc1swXQogICAgZWxpZiBud29yZHMgPiAxOgogICAgICAgIHJldHVybiB3b3Jkc1swXS5sb3dlcigpICsgJycuam9pbihtYXAoc3RyLnRpdGxlLCB3b3Jkc1sxOl0pKQogICAgcmV0dXJuICcnICMgbm8gd29yZCBjaGFyYWN0ZXJzCgp0YWdzX3N0ciA9ICIiIiAndEhpUyBpUyBhIHRBZywgJ3doaXRlc3BhY2UnICEmI14gLCBzZWNvbmRjb21tZW50ICwgbm8hcHVuYyQkLCAKaWZOT1NQQUNFU3RoZW5QUkVTRVJWRWNhcHMnICIiIgpwcmludCgiXG4iLmpvaW4oZmlsdGVyKE5vbmUsIG1hcChjYW1lbENhc2UsIHRhZ3Nfc3RyLnNwbGl0KCcsJykpKSkp