This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Although you might think so based on the output, the expression "[^http:\\/\\/]" is not skipping over the String "http://".
As Henry explained, it is only matching a single character that is not h, or t, or p, or :, or /.
So when you run this using your example of "http://firstname.lastname...", it looks like it's working, because the first single character that meets this criteria happens to be f.
But if your String was "http://phil.spector...", then the p and the h would also be skipped over, and the first single character that meets this criteria would be i.
After matching that first character, the expression ".*" matches any character zero or more times, and that's what's giving you the rest of your output. The attempts to negate ".blub.com/sdfsdf" are having no effect.
"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org