use strict; use warnings; use feature 'say'; use constant ERR => 1; use re::engine::TRE max_cost => ERR, cost_ins => -1, # no insertions cost_del => -1, # no deletions ; my $suffix_source = 'abbaba'; my $prefix_source = 'babbaaaa'; my $max_len = 0; $prefix_source =~ /^${ \substr $suffix_source, -$_ }/ and $max_len = $_ and last for reverse ERR + 1 .. length $suffix_source; say substr( $suffix_source, -$max_len ), ' ', substr( $prefix_source, 0, $max_len ) if $max_len; __END__ baba babb