sub common_suffix { $_[0] =~ m[ (?> (.+) ) (?(?{ not is_suffix($_[1], $^N) }) (?!) ) ]xs; return $1; }