#!/usr/bin/env perl use 5.010; use strict; use warnings; my $soh_string = 'soh_string'; my $caret_a_string = 'caret_a_string^A'; my $ctrl_a_string = 'ctrl_a_string' . chr(1); my $test_string = join('', $soh_string, $caret_a_string, $ctrl_a_string, $caret_a_string, $ctrl_a_string, $soh_string, $ctrl_a_string, $soh_string, $caret_a_string ); my $string_re = qr{(?>|\^A|\cA)}; say for split $string_re => $test_string;