>perl -wMstrict -le "print '------ output ------'; my $s = shift; print $s; my @chunks = split m{ (\s+ AND \s+) }xms, $s; @chunks = map { m{ \b OR \b }xms ? qq{($_)} : $_ } @chunks; print join '', @chunks; " "huckabee AND jfkadlsfj fdsfldfj06329 OR reagan AND OReilly AND clinton OR sebelius OR mccain" ------ output ------ huckabee AND jfkadlsfj fdsfldfj06329 OR reagan AND OReilly AND clinton OR sebelius OR mccain huckabee AND (jfkadlsfj fdsfldfj06329 OR reagan) AND OReilly AND (clinton OR sebelius OR mccain)