"(?<=[\\-+*/=()])|(?=[()\\-+*/=])"
[\\-+*/=()]
и [()\\-+*/=]
- группы символов.Look-ahead & Look-behind Zero-Width Assertions (опережающие и ретроспективные проверки) — это возможность создать свои аналоги $ и ^: они задают условие, которое должно выполнятся или не выполнятся в начале или конце строки, и не являются частью «сматченого» выражения, т.е. не будут заменены в preg_replace. Это именно то, что нам нужно для этой задачи.
Look-behind — «смотрит» назад, соответственно ставится в начале регулярного выражения.
Look-ahead — в конце, и «смотрит» вперед.
(?<=pattern) положительное look-behind условие
(?=pattern) положительное look-ahead условие