remove upper case constraint since regex is case insensitive
move whitespace to regex
rework function to remove comments
optimize parser