Okay, I've found the problems after a lot of debugging!
Firstly, the reg expression in the book, ^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$, doesn't work with the email I had set up to test this (austintest1@localhost) as it's expecting 1 or more . after the @ symbol. Changing the +\. to *\. should rectify this, although I haven't tested it yet. However when I include a . (ie. austintest1@local.host, with the dot encoded as %2E) it works.
Secondly, there was a problem with my BASE_URL set up in the config.inc.php file, so when the script judged my email to be no good it was redirecting via a very dodgy URL.
Everything is now working, phew!
Thanks HartleySan and Larry for your assistance.
Austin