Well, not exactly a book and not necessarily something I recommend everybody reads, but when I was getting started (early 80's) I purchased a copy of the source code to HDOS, the HeathKit Disk Operating System (written by J. Gordon Letwin, who went on to work on IBM's OS/2). I spent many months poring over every line of 8080 assembly language code in that massive set of bound photocopies of source code printouts. The OS itself, device drivers, command shell, assembler, BASIC interpreter...everything was there. I don't think anyone can realistically do the same thing on a modern system but that experience taught me so much about programming and software engineering.
I learned regex incidentally from reading the classic book "Software Tools" (Kernighan & Plauger). It has a chapter which briefly describes the syntax but focuses on an analysis of the code used to parse & process them (in RATFOR).
Over the last 30+ years, I've found automata theory to be pretty much indispensable. I can't even begin to tell you the number of times I've run across hideously complex logic that I replaced with a simple and maintainable finite state machine.
55. Just stumbled across a philosophy course online. I had always thought of philosophy as archaic, useless and boring. I could not have been more wrong.