use strict;
my $str = ' 88811 000294 00 A0 A9 bclr.b _RCONbits,#5 ;,
88813 000296 00 00 07 call _vBootInitSerialBuffer ;
88815 000298 F0 0E 20 mov #239,w0 ;,
88816 00029a 00 00 07 rcall _vBootInitSerial_C1 ;
88818 00029c F0 0E 20 mov #239,w0 ;,
88819 00029e 00 00 07 rcall _vBootInitSerial_C2 ;
88821 0002a0 00 40 EB clr.b w0 ; tmp38
88822 0002a2 00 E0 B7 mov.b WREG,_gbTurnOnLED ; gbTurnOnLED
89049 00032e E0 0F 50 sub w0,#0,[w15] ; tmp56,
89050 Call the routine
89051 000330 00 00 3A bra nz,.L50 ;
89053 000332 10 C0 B3 mov.b #1,w0 ;,
89054 000334 00 00 07 rcall _memcpy ; <HIT>
89055 000336 00 00 37 bra .L50 ;
89054 000334 00 00 07 rcall _BxootGGashLED ; <HIT>
89055 000336 00 00 37 bra .L50 ;
89054 000334 00 00 07 rcall _BootFlashLED ;
89054 000334 00 00 07 call _ln ; <HIT>
89055 000336 00 00 37 bra .L50 ;
89054 000334 00 00 07 call _vBoootFlashLED ; <HIT>
89055 000336 00 00 37 bra .L50 ;
89054 000334 00 00 07 rcall _u8BootGGashLED ;
89055 000336 00 00 37 bra .L50 ;
89054 000334 00 00 07 rcall _u16bootGGashLED ;
89055 000336 00 00 37 bra .L50 ;
89056 .L49:
89058 000338 00 00 80 mov _gu16_50HzTimerTick,w0 ;';
my $regex = qr/r?call[\t ]+_(?!.*boot).*/ip;
if ( $str =~ /$regex/g ) {
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