Verificação de toda a string com regex em PHP

Frequentemente, preg_match é usado para verificar se uma string corresponde a uma expressão regular por completo. Nesse caso, devemos colocar um acento circunflexo ^ no início da regex e um cifrão $ no final. Com isso, estamos dizendo que o padrão deve corresponder à string inteira.

Vamos descobrir, por exemplo, se uma string é composta inteiramente pela letra 'a' ou não:

php<?php
  echo preg_match('#^a+$#', 'aaaa'); // retornará 1
  echo preg_match('#^a+$#', 'aaab'); // retornará 0
?>
Задание 1

Determine se a string passada é um domínio. Use para os testes as seguintes strings:

php<?php
  $arr[] = 'site.ru';          // +
  $arr[] = 'site.com';         // +
  $arr[] = 'my-site.com';      // +
  $arr[] = 'my-cool-site.com'; // +
  $arr[] = 'my_site.com';      // +
  $arr[] = 'site123.com';      // +
  $arr[] = 'site.travel';      // +
  $arr[] = 'si$te.com';        // -
  $arr[] = 'site.r';           // -
?>
Задание 2

Determine se a string passada é um email. Use para os testes as seguintes strings:

php<?php
  $arr[] = 'addr@mail.ru';    // +
  $arr[] = 'addr123@mail.ru'; // +
  $arr[] = 'my-addr@mail.ru'; // +
  $arr[] = 'my_addr@mail.ru'; // +
  $arr[] = 'addr@site.ru';    // +
  $arr[] = 'addr.ru';         // -
  $arr[] = 'addr@.ru';        // -
  $arr[] = 'my@addr@mail.ru'; // -
?>