use strict;
my $str = '1173216167_AgentWill.jpg
1173216768_BrooksHarold.jpg
1173299189_BurgessDon.jpg
1173299407_ConiglioMike.jpg
1173299438_CooperKaren.jpg
1173299499_CurtisChristopher.jpg
1173300038_ElmoreKim.jpg
1173300155_FarmerVicki.jpg
1173300181_FletcherSteve.jpg
1173300207_ForrenEddie.jpg
1173300279_McguckinLinda.jpg
1173300440_GourleyJj.jpg
1173300567_HeinslemanPam.jpg
1173300593_HondlKurt.jpg
1173300619_HornJeff.jpg
1173300646_HowardKen.jpg
1173300716_IvicIgor.jpg
1173300757_JainMike.jpg
1173300862_KainJack.jpg
1173302066_KennedyDoug.jpg
1173302338_KuhlmanKristin.jpg
1173302528_LangstronCarrie.jpg
1173302580_LynnKelly.jpg
1173302631_MacgormanDon.jpg
1173303489_MelnikovValery.jpg
1173303530_MorrowBrett.jpg
1173303596_MurnanJames.jpg
1173303818_OrtegaKiel.jpg
1173304172_RabinBob.jpg
1173304254_RollinsTonia.jpg
1173304421_SchmidtMike.jpg
1173304508_SchurrTerry.jpg
1173304851_StumpfGreg.jpg
1173304935_TarpKeli.jpg
1173305069_ToomeyRobert.jpg
1173305102_TorresSebastian.jpg
1173305301_WickerLou.jpg
1173305326_WittArthur.jpg
1173305357_WoodBim.jpg
1173305420_XuQin.jpg
1173305550_YussoufNusrat.jpg
1173305582_ZahraiAllen.jpg
1173305608_ZhangPengfei.jpg
1173305634_ZhangJian.jpg
1173305666_ZieglerConrad.jpg
1173305696_ZrnicDusan.jpg
1178031443_LewisJohn.jpg
1208811784_DoviakRichard.jpg
1208811993_KrauseJohn.jpg
1208812047_MansellTed.jpg
1208812483_PepplerRandy.jpg
1208812511_ReevesHeather.jpg
1208812542_RobertsBrett.jpg
1208812597_WaughSean.jpg
1248986831_Warde-David.jpg
1248987295_Smith--Travis.jpg
1248987685_Knopfmeier--Kent.jpg
1248987721_GRIFFIN-ERICA.jpg
1248987828_Brogden--Jeff.jpg
1248987872_Arthur-Ami.jpg
1249399247_Nemunaitis-Kodi.jpg
1258400095_Clark-Adam.jpg
1258400182_Stratman-Derek.jpg
1258755192_Schwarz--Chris.jpg
1271793238_humberto.jpg
1273024015_BrianKaney2003.jpg
1278003921_Butler-Sterling.jpg
1278004017_Reinke-Tracy.jpg
1278004036_Ryzhkov-Alexander.jpg
1278004055_Tang-Lin.jpg
1278004074_Wang-Yadong.jpg
1297362249_Jones-Thomas.jpg
1297362283_Potvin-Corey.jpg
1311024411_Crank-Linda.jpg
1311024437_Gao-Jidong.jpg
1311024633_Smith-Brandon.jpg
1391808396_Bowden-Katie.jpg
1401375264_Meitin_jose.jpg
1407171270_Carlin_Jacob.jpg
1407171306_Cocks_Stephen.jpg
1407171371_Creager_Gerald.jpg
1407171682_Kirstetter-Pierre.jpg
1407171749_Kuster_Charles.jpg
1407171773_Martinaitis_Steven.jpg
1407171792_Mirkovic_Djordje.jpg
1407171905_Shattuck_Micheal.jpg
1407171947_Snyder_Jeffrey.jpg
1407172034_Wadler_Joshua.jpg
1418052845_D-Wasielewski.jpg';
my $regex = qr/(\d{10})_([A-Z][a-z]+)([A-Z][a-z]+)(\.[a-zA-Z]{3,4})/mp;
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