Челлендж от Machine Learning Lab Университета Триеста (Италия) предлагает решить 12 задач причём уровень задач сильно варьируется — от супер-лёгкого до сложного. Конечно, решений может быть больше одного и тест-кейсы в задаче покрывают не все варианты. Тем не менее если набрали 100% — то поздравляю! Тест пройден. Спойлер: в некоторых задачах (особенно лёгких) подсказка практически и есть решение. Имеется текст содержащий цифры, требуется найти все цифры. Сложность: супер-лёгко. Нужно использовать символ цифры и квантификатор множественности. "[0-9]+" тоже верное решение. Имеется текст содержащий mac-адреса, нужно их найти. Сложность: легко. Нужно использовать символ означающий любой символ буквы или цифры, двоеточие для разделения и квантификатор множественности. "+" вместо "{2}" тоже является верным решением, хоть и не до конца точным. Те, кто хорошо знаком с mac-адресом заметили что mac-адрес записывается в шестнадцатеричной системе исчисления. А в предыдущем решении использовался знак \w означающий любой символ алфавита и все цифры. Согласен, наверное это излишне, но можно это учесть, заодно сократив регулярку. Имеется текст с ftp-адресами, требуется их найти. Сложность: легко. Нужно начать с ftp:// а затем перечислить допустимые символы в адресе, не забыв про квантификатор множественности. Имеется какой то форматированный файл в котором нужно найти все строки соответствующие шаблону $любые символы$. Сложность: легко. Нужно использовать экранирование зарезервированного символа, символ любого символа, квантификаторы множественности и ленивый. Банальная задача, но требует уже немного лучшего знания регулярок. Из текста найти ip-адреса. Сложность: легко. Очень похоже на вторую задачу. Если вместо "+" вы написали "{1,3}" то вы молодец. ip-адрес это не просто цифры, а цифры от 0 до 255. Что бы определить диапазон от 0 до 255 придётся немного постараться: Далее разрешаем повторение шаблона цифры от 0 до 255 ровно 3 раза: Из html-документа вытащить тег href. Сложность: средне. Следует использовать "любой символ кроме" и "или" для каждой скобки. Всё это помещаем в круглые скобки, дописываем знак или — "|" и повторяем тоже самое для одинарных кавычек. В произвольном тексте найти все ссылки. Задача усложняется тем что не достаточно просто найти ссылку, нужно выкинуть с конца не допустимые символы. Сложность: сложно. Нужно начинать с http, использовать "любой символ кроме" и закончить поиск символом который допустим. В задаче нет ссылок https, но можно это учесть добавив "s?" после http. И по итогу — начинаем с http://, далее совершенно любой символ кроме символов "<" или пробела, но в конце обязателен символ латинского алфавита или слэш. В HTML заголовком считается любой тег h + цифра. Сложность: средне. Начните с h + цифра + любой символ или его отсутствие. Довольно просто: После h идёт цифра, причем в спецификации html указано что допустимыми являются цифры от 1 до 6, а сам тег не может быть закрыт ничем кроме треугольных скобок. Следовательно такое решение будет более точным: Правда тут есть ошибка позволяющая открыть тег одной цифрой, а закрыть другой. И поэтому ещё более точным решением будет использовать ссылки: "<h([1-6])[^>]*>.+?<\/h\1>". Это не говоря о том что в тесте не учтен регистр. Отдельно про дополнение: В произвольном тексте найти в все телефоны в разных форматах. Сложность: сложно. Необходимо использовать знак наличия символа или его отсутствия, квантификатор ограничения количества цифр, конструкцию набора символов. Возможна конструкция или. Работать будет, но допускает два символа после первых трех цифр — хорошо если это закрывающая скобка и пробел после неё, но плохо если два дефиса. Поэтому есть чуть более точное решение: "\(?\d{3}(\) ?|[.\/-])\d{3}[-.]\d{4}" Есть некий паттерн содержащий элементы, найти всех авторов из поля author. Сложность: очень сложно. Необходимо опираться на тот факт что все имена авторов начинаются с большой буквы и написаны по шаблону. Это решение верно, но имеет минус. Мы обошли "{\"u}" костылем "({\"\w})?" и в принципе это работоспособно если так же засунуть этот костыль в другие части имен авторов. В любом случае если вы смогли хоть как то решить эту задачу, это очень круто! P.S перечисление [A-Za-z] здесь вынужденная мера, потому что в тесте отсутствуют модификаторы.  Есть более компактное и простое решение позволяющее отказаться от костыля выше: Точно так же как в задаче 8, но нужно найти не сами заголовки, а их содержимое. Сложность: сложно. Задача идентична 8 задаче. Это не сложно если знать про заглядывание назад и вперед. Имеет решение с заглядыванием назад и без заглядывания назад. Без заглядывания назад: С заглядыванием назад: Плюс можно учесть все замечания к решению 8 задачи. Задача похожа на 10 задачу, но на мой взгляд проще. Сложность: сложно. Все основные принципы из 10 задачи, но нужно учесть начало строки. Известное мне решение использует заглядывание назад. Или по-проще, такое: System Engineer в ipoca.jp