*
— любое (в том числе и нулевое) количество символов в строке, соответсвующих символу перед *. Т.е. 1589* — 158 + от любое количество 9: 158, 1589, 15899 и т.д.
+
— любое ненулевое количество символов в строке, соответсвующих символу перед +. Т.е. 1589+ — это 1589, 15897, но не 158.
.
— не менее одного любого символа (кроме перевода строки). 158. — 1581, 1589, 15891 и т.д.
?
— 0 или 1 предществующих выражений. Пример: Star(Craft)? — это Star и StarCraft.
^
— начало строки + в некоторых контекстах отрицание. ^A — все строки, начинающиеся с А.
$
— конец строки. mp3$ — все строки, оканчиваюеся на mp3.
^$
— пустая строка.
\
— экранирующий символ, нужен для работы с символами, применяющимися в регулярных выражениях. \?
, \
. и тому подобное.
[]
— задают подмножество символов, внутри квадратных скобок ^
действует как отрицание.
[abc]
— а, b или c.
[d-h]
— символ из диапазона с d по h.
[A-E]
— символ из диапазона с A по E.
[d-hA-E]
— символ из d-h или A-E.
[0-7]
— диапазон цифр.
[^k-q]
— любой символ, кроме диапазона символов с k по q.
Полезная ссылки по сабжу: один, два, три и четыре.