#!/usr/bin/perl use strict; use warnings; use feature 'say'; my @tests = ('Thanos1983+|Thanos1983+', 'Thanos1983+| ', 'Thanos1983+|'); for (@tests) { say "I found:\t\$1: '$1'\t\$2: '$2'\t\$3: '$3'" if /(.+)(\|)(.+)/; } __END__ $ perl test.pl I found: $1: 'Thanos1983+' $2: '|' $3: 'Thanos1983+' I found: $1: 'Thanos1983+' $2: '|' $3: ' '