Is there any difference between: re.compile ('[a-zA-Z]*') and re.compile ('[a-z]*', re.I) other than notation, i.e. are the state machines that get built identical in either case?