Помогите с проблемой, имеется регулярка preg_match_all('#calc\s*\(\s*(.*?)\s*\)\s*#im', $value, $matches); она вытягивает значения внутри всех функций calc() в тексте, все работает хорошо, пока в функции не появляются вложенные выражения со скобочками, например, calc((1+2)*5/100), регулярка обрезает последнюю скобку. Гуглеж привел к рекурсивному шаблону preg_match_all('/\(((?>[^()]+)|(?R))*\)/', $value, $matches); Но у меня не получается выделить только значения внутри функций calc, он вытягивает значения всех скобочек. То есть такой текст: $value = "calc( ( 17000 - 3000)*5/100) sdfgsdfasdf calc((17000-3000)*5/100) asdfsadf (100000*10)"; возвращает три результата, а должен только два calc()