(xxx) - на это можно сослаться через \цифра, и это возвращается в массиве в 3 параметре preg_match.
(?:xxx) - вот это не запоминается в массив и на это нельзя сослаться. Но бывает, что очень хочется, например, повторить не один символ, а последовательность. Вот \d+ - это повторение цифры. А если мы хотим, чтобы повторялась, например, цифра-буква-цифра, то напишем (?:\d\w\d)+.
(?!xxx) - это означает, что мы утверждаем, что после текущей позиции стоит что угодно, кроме последовательности ххх, но вперед при этом не сдвигаемся, а просто заглядываем.
(?:(?!xx).)? - последовательность символов, после которых не встречается xx.
|