\S
в конце вашего регулярного выражения всегда должен соответствовать одному непробельному символу - последнему символу в вашей строке, поскольку за ним следует $
. Поэтому, когда это возможно, ваша группа захвата будет соответствовать тому, что не включает этот последний символ.
Я настоятельно рекомендую избегать шаблонов прогнозирования ((?=...)
и варианты) при любых обстоятельствах. Использование трех в одном и том же регулярном выражении, безусловно, не нужно. Если бы вы могли объяснить, что вы пытаетесь сделать, мы все можем дать вам рекомендации, как сделать это лучше.