Looking at the test case timestr = '5:50 A.M. on June 13, 1990' which incorrect identifies the 'M' in 'A.M.' as a tzname, I'm thinking it might make sense to avoid this particular problem within timelex.split so that "A.M." is identified as a single token. A few similar cases come to mind: "P.M.", "A.D.", "B.C.". Thoughts?