Список специальных символов в регулярках в PHP

Если экранировать обычный символ - ничего страшного не случится - он все равно будет обозначать сам себя. Исключение - цифры, их нельзя экранировать.

Часто возникает сомнение, является ли данный символ специальным. Некоторые доходят до того, что экранируют все подозрительные символы подряд. Однако, это плохая практика (захламляет регулярку обратными слешами).

Являются спецсимволами: $ ^ . * + ? \ / {} [] () |

Не являются спецсимволами: @ : , ' " ; - _ = < > % # ~ ` & !

Задание 1

Дана строка:

php<?php
  $str = 'a.a aba aea';
?>

Напишите регулярку, которая найдет строку 'a.a', не захватив остальные.

Задание 2

Дана строка:

php<?php
  $str = '2+3 223 2223';
?>

Напишите регулярку, которая найдет строку '2+3', не захватив остальные.

Задание 3

Дана строка:

php<?php
  $str = '23 2+3 2++3 2+++3 345 567';
?>

Напишите регулярку, которая найдет строки '2+3', '2++3', '2+++3', не захватив остальные (+ может быть любое количество).

Задание 4

Дана строка:

php<?php
  $str = '23 2+3 2++3 2+++3 445 677';
?>

Напишите регулярку, которая найдет строки '23', '2+3', '2++3', '2+++3', не захватив остальные.

Задание 5

Дана строка:

php<?php
  $str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';
?>

Напишите регулярку, которая найдет строки '*q+', '*qq+', '*qqq+', не захватив остальные.

Задание 6

Дана строка:

php<?php
  $str = '[abc] {abc} abc (abc) [abc]';
?>

Напишите регулярку, которая найдет строки в квадратных скобках и заменят их на '!'.