\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[left=1.5cm,right=1.5cm,top=2cm,bottom=1.5cm,bindingoffset=0cm]{geometry}
\usepackage{alltt}
\usepackage{amsmath}
\usepackage{booktabs}

\begin{document}

1. Пусть переменная var имеет значение abc123. Определите, что возвращают следующие выражения - true или false: \\
    \verb@\$var =~ /./@ : true.\\ Метасимвол `.` совпадает с любым символом, кроме символа перевода строки.\\
    \verb@\$var =~ /[A-Z]*/@ : true.\\ Конструкция `[]` определяет список возможных символов для позиции, а метасимвол `*` означает любое количество повторений стоящего до него символа, в том числе и нулевое; таким образом, данное регулярное выражение соответствует всему.\\  
    \verb@\$var =~ /(\d)2(\1)/@ : false.\\ Конструкция `()` определяет элементы, которые следует сохранить для использования в обратных ссылках, доступных по символу \verb@\n@, где n -- целое число от единицы.\\
    \verb@\$var =~ /abc\$/@ : false. \\ Метасимвол \$ является `якорем`, знаменующим конец строки; данное выражение проверяет окончание строки.\\ 
    \verb@\$var =~ /1234?/ @: true. \\ Метасимвол \verb@\?@ определяет для символа, стоящего в позиции перед метасимволом, возможность нулевого или единичного повторения.\\

2. Пусть \verb@\$var@ имеет значение abc123abc. Какое значение примет \verb@\$var@ после следующих подстановок?\\
    \verb@\$var =~ s/abc/def/;@ : `def123abc`.\\ Оператор подстановки без модификаторов изменяет в исходной строке первое вхождение шаблона.\\
    \verb@\$var =~ s/[a-z]+/X/g;@ : `XXX123XXX`.\\ С модификатором g (global) замена применяется к каждому вхождению.\\
    \verb@\$var =~ s/B/W/i;@ : `aWc123abc`.\\ С модификатором i игнорируется регистр.\\
    \verb@\$var =~ s/(.)\d.*\1/d/;@ : `abd`.\\ Символ \verb@\d@ эквивалентен диапазону цифр [0-9]; выражение в круглых скобках запоминается для работы обратной ссылки \verb@\1@. Таким образом, производится замена строки от символа перед цифрой до этого же символа через произвольное количество позиций на символ d. \\
    \verb@\$var =~ s/(\d+)/$1*2/e;@ : `abc246abc`.\\ Модификатор e (eval) изменяет поведение оператора таким образом, что выражение-замена исполняется в качестве Perl-скрипта.\\

3. Чему соответствуют следующие шаблоны:\\
	\verb@/a|bc*/@ : `aaaaaacccccc`, `asdbcccasd`, `bc`.\\
	\verb@/[\d]{1,3}/@ : `1`, `834:32134`.\\
	\verb@/\bc[aou]t\b/@ : `cat`, `:cut:`.\\
	\verb@/(xy+z)\.\1/@ : `xyyyyyyyz.xyyyyyyyyz`,`43352xyyyyyyyz.xyyyyyyyzewre\\
	\verb@/^\$/@ : `\$ getent passwd`, `\$\$\$\$`. \\
	
4. Написать шаблоны, соответствующие следующим примерам:\\

    4.1. Не менее 5 маленьких латинских букв: \verb@m/[a-z]{5,}/@.
    
    4.2. Цифра 1 или слово "one" (в любом регистре): \verb@m/1|(one)/i@.
    
    4.3. Число, возможно, дробное (с десятичной точкой): \verb@m/\s+|^[-+]?\d+(\.?\d*)?$|\s+/@.
    
    4.4. Любая буква, за которой следует гласная, повторяется еще раз: \verb@m/([a-z])[aeiouy]\1/@.
    
    4.5. Хотя бы один "+": \verb@m/\++/@\\
\end{document}