The term XSLT means a language for transforming XML defined by W3C. There are two versions 1.0 and 2.0.
The term XSL is used in a wide variety of ways and it's best to avoid using it without qualification. Originally XSL was XSLT + XSL Formatting Objects (XSL-FO). But some people use it to mean XSL-FO, and some people use it to mean XSLT. Other people use (or at one time used) it to mean the 1998 Microsoft dialect of XSLT. Most people who use the term "XSL" haven't actually worked out what these distinctions mean.
As for books: browse this site!
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference