Take a look at "Text Processing In Python" by David Mertz. This book doesn't cover all your requirements, but its a well-written book that is more comprehensive than its title might indicate. There's also a free version of this book online. Malcolm