my $str="Study Protocol Number NBXF317N2201"; my ($term) = $str =~ /Protocol (?:(?:No\.|Number)? )?([A-Z0-9]{12})/; print $term; #### my $str="Study Protocol Number NBXF317N2201"; my ($term) = $str =~ /Protocol (?:(?:No\.?|Number) )?([A-Z0-9]{12})/; print $term; #### use strict; use warnings; for my $str ( "Study Protocol Number NBXF317N2201", "Study Protocol No. NBXF317N2201", "Study Protocol NBXF317N2201", "Study Protocol No NBXF317N2201" ) { my ($term) = $str =~ /Protocol (?:No\. |No |Number |)([A-Z0-9]{12})/; print "$term\n"; }