может лучше конкретно задачу скажешь? а то так сложно ориентироваться. пройдет только второе
1 Вариант.
if(preg_match('#^\w+\|\|[a-z0-9-]{3,}(\.[a-z0-9-]{2,})+$#', $str)) {
//проверка пройдена
} else {
//аборт
}
2 Вариант:
if(!preg_match('#^\w+\|\|[a-z0-9-]{3,}(\.[a-z0-9-]{2,})+$#', $str)) //аборт
//проверка пройдена