McK, I'm sorry. As a geek, I'm paranoidally suspicious
Your regex will work if you include the page address into lookbehind:
(?<=(user/SendEmail\.jtp\?type=user&user=\d+)">Send Email to ).+(?=<)
However, most regex engines don't support variable-length lookbehind (\d+ can have any length, from one character to infinity), so it will work only in .NET, RegexBuddy, or my tool.
In PHP, you can use the usual capturing groups:
<?php
$url = '<a href="/user/SendEmail.jtp?type=user&user=195799">Send Email to shreyes</a>';
$pattern = "/(user\/SendEmail\.jtp\?type=user&user=\d+)\">Send Email to (.+)(?=<)/";
preg_match_all($pattern, $url, $userInfo);
echo 'UserAddress: '.$userInfo[1][0] . "<br>\n";
echo 'UserName: '.$userInfo[2][0];
Good luck with your project! It should be very useful for the Protege community.