Где практиковать регулярные выражения?
Недавно я столкнулся с задачей.
Есть некий внешний API, который отдает JSON.
Но на тестовом сервере ведутся работы и в него попадают левые данные, нотисы, html и прочнее.
Ответ принимает следующий видNotice: unrecognized option - colour
{"code":200,"id":535829352}
Задача: вытащить корректный JSON.
Сначала подумайте сами, а вот моё решение./**
 * Find JSON in string
 *
 * @param string $string Input string
 * @return array
 */
function findJson($string)
{
    $re = '~\{(?:[^{}]|(?R))*\}~';

    if (preg_match($re, $string, $m)) {
        $result = json_decode($m[0], true);
    } else {
        $result = ['error' => 'invalid_json'];
    }

    return $result;
}
Книжку не посоветую.
Удобная песочница для отладки, с подсказками что какой оператор значит https://regex101.com/r/aP3dO0/1
Интересные задачки для тренировки можно найти на codewars, например.  (Нужна регистрация)
Я вот, так и не осилил парсинг всевозможных ютубовских адресов одной регуляркой jsfiddle.net/1j5do56g/1