Usually it's discouraged to solve this kind of parsing with regex, but expecting that split could do this is even more than ambitious.
You would need look-arounds b/c both LHS and RHS could contain "operators".
Did you consider using something like SQL::Parser ?
Anyway the right approach¹ (IMHO) is to successively build a parse regex which starts from the left, by combining smaller parts like $clause = $lhs . $op . $rhs;
Like this you can also follow the official SQL grammar.
Saying this, there are already some BNF parsers available for Perl.
Good luck reinventing the wheel. ;-)
Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!
¹) not elaborating on the necessity to be able to recursively descent into nested structures like parens-groups and even sub-queries
In reply to Re: Skip quoted string in regex
by LanX
in thread Skip quoted string in regex
by roho
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |