use strict;
my $str = 'TR$1b3abc T0b0 4 0 20151117 062231 7 14 15 c0a81e03 0 0 1 00A 3 481915101 3 481915101 0 1 3 90047975097350 001 0 3 975097350 1 9 F10 XT 131550-251897 FT110393_RT43 loop[gw_sip,PR970149981] 0 D00c 3108 222e42 E007 020103 H018 3 481915101 10 TRAFTERM G033 20151117 06223185 0000000050 0000000772 0000001484 V013 0 20 0 0 0 SIP_OUT O038 7109 58056 56252 354 343 0 4 0 IP2TDM 192.168.31.6:6372 Z02c 20925-DY-0001b6a8-523106f36@sip.mystream.fr
GO$18c T0a3 185 0 20151117 063030 6 17 18 c0a81e03 1 0 1 00A 3 139947700 3 139947752 0 1 3 629452310 001 0 3 629452310 1 24 B10 XT 265720-251900 SIP loop[gw_sip,PEER_SFR_2] 0 D00c 3108 222e48 G033 20151117 06303070 0000000071 0000001140 0000001731 L008 1 1 3 1 E007 020103 Y005 3 15 V012 8 20 0 0 0 SIP_IN V013 8 20 0 0 0 SIP_OUT Z02c 21325-EZ-0001b7ed-3b997c5d2@sip.mystream.fr Z00d 70b7375a@pbx';
my $regex = qr/TR\$.+?(?=\n)/p;
if ( $str =~ /$regex/ ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html