If you're wanting to learn about regular expressions, I'd recommend checking out Mastering Regular Expressions. The author not only explains regular expressions, but also discusses how regular expression engines work and how that impacts the regular expression syntax. It's a good reference book to have handy.
As for your question on (?=\d), that's a zero width look ahead. Basically your second regular expression is looking for the first occurrence of the word 'man' that is immediately followed by a digit and then replaces 'man' with 'cat'. That's assuming that you didn't accidentally forget to include modifiers after the last / in your post.
For example, if your string was man mantis man1 man2 man15, the second regular expression that you provided would change that to man mantis cat1 man2 man15.