For starters, you should indent the code properly, e.g.,
if ($submit || $preview || $refresh)
{
if ($user->data['user_posts'] < 100)
{
if (preg_match('/(http|www)/i', request_var('message', '', true)))
{
$error[] = $user->lang['NO_URLS'];
}
if (preg_match('/(@)/i', request_var('message', '', true)))
{
$error[] = $user->lang['NO_EMAILS'];
}
}
As for the logic: I would expect something like this:
if number of posts < 100 and email address in text:
add error message to list of error messages
if number of posts < 50 and website address in text:
add error message to list of error messages