import re
regex = re.compile(r"(?<![A-Z]{1}[a-z]{1})(?=[A-Z](?![a-z]{1}))([a-zA-Z]{2,4})(?![a-z]{1})(?![A-Z]+[_])")
test_str = ("BackgroundDownloader.exe\n"
"AccountBilling.url\n"
"TechSupport.url\n"
"DivxDecoder.dll\n"
"ItemMarker.jpg\n"
"MacLogo.jpg\n"
"StylesLeft.css\n"
"TheScript.js\n"
"ReadMe.html\n"
"ReadMe\n"
"BasicCommands.html\n"
"CharacterNaming.html\n"
"GettingStarted.html\n"
"ManualErrata.html\n"
"RealmSelection.html\n"
"AccountAdministration.html\n"
"BlizzardInsider.html\n"
"GameSuggestions.html\n"
"GameSupport.html\n"
"UninstallLocalization.xml\n"
"WTF\n"
"RunOnce.wtf\n"
"WoW.exe\n"
"WowError.exe\n"
"World of Warcraft.app\n"
"MacOS\n"
"World of Warcraft\n"
"PkgInfo\n"
"DivX Gaming.component\n"
"DivX Gaming\n"
"DivX Gaming.rsrc\n"
"Error Reporter.app\n"
"Error Reporter\n"
"MainMenu.nib\n"
"WowErrorAE.exe\n"
"AnimationData.dbc\n"
"AreaPOI.dbc\n"
"AreaTable.dbc\n"
"AreaTrigger.dbc\n"
"AttackAnimKits.dbc\n"
"AttackAnimTypes.dbc\n"
"AuctionHouse.dbc\n"
"BankBagSlotPrices.dbc\n"
"CameraShakes.dbc\n"
"Cfg_Categories.dbc\n"
"Cfg_Configs.dbc\n"
"CharacterCreateCameras.dbc\n"
"CharacterFacialHairStyles.dbc\n"
"CharBaseInfo.dbc\n"
"CharHairGeosets.dbc\n"
"CharHairTextures.dbc\n"
"CharSections.dbc\n"
"CharStartOutfit.dbc\n"
"CharVariations.dbc\n"
"ChatChannels.dbc\n"
"ChatProfanity.dbc\n"
"ChrClasses.dbc\n"
"ChrRaces.dbc\n"
"CinematicCamera.dbc\n"
"CinematicSequences.dbc\n"
"CreatureDisplayInfo.dbc\n"
"CreatureDisplayInfoExtra.dbc\n"
"CreatureFamily.dbc\n"
"CreatureModelData.dbc\n"
"CreatureSoundData.dbc\n"
"CreatureType.dbc\n"
"DeathThudLookups.dbc\n"
"DurabilityCosts.dbc\n"
"DurabilityQuality.dbc\n"
"EmotesText.dbc\n"
"EmotesTextData.dbc\n"
"EnvironmentalDamage.dbc\n"
"FactionGroup.dbc\n"
"FactionTemplate.dbc\n"
"FootprintTextures.dbc\n"
"FootstepTerrainLookup.dbc\n"
"GameObjectDisplayInfo.dbc\n"
"GroundEffectDoodad.dbc\n"
"GroundEffectTexture.dbc\n"
"HelmetGeosetVisData.dbc\n"
"ItemClass.dbc\n"
"ItemDisplayInfo.dbc\n"
"ItemGroupSounds.dbc\n"
"ItemPetFood.dbc\n"
"ItemRandomProperties.dbc\n"
"ItemSet.dbc\n"
"ItemSubClass.dbc\n"
"ItemSubClassMask.dbc\n"
"ItemVisualEffects.dbc\n"
"ItemVisuals.dbc\n"
"LanguageWords.dbc\n"
"LoadingScreens.dbc\n"
"LoadingScreenTaxiSplines.dbc\n"
"LockType.dbc\n"
"NameGen.dbc\n"
"NamesProfanity.dbc\n"
"NamesReserved.dbc\n"
"PageTextMaterial.dbc\n"
"PaperDollItemFrame.dbc\n"
"PetLoyalty.dbc\n"
"PetPersonality.dbc\n"
"QuestInfo.dbc\n"
"QuestSort.dbc\n"
"ServerMessages.dbc\n"
"SheatheSoundLookups.dbc\n"
"SkillCostsData.dbc\n"
"SkillLine.dbc\n"
"SkillLineAbility.dbc\n"
"SkillLineCategory.dbc\n"
"SkillRaceClassInfo.dbc\n"
"SkillTiers.dbc\n"
"SoundAmbience.dbc\n"
"SoundCharacterMacroLines.dbc\n"
"SoundEntries.dbc\n"
"SoundProviderPreferences.dbc\n"
"SoundSamplePreferences.dbc\n"
"SoundWaterType.dbc\n"
"SpellAuraNames.dbc\n"
"SpellCastTimes.dbc\n"
"SpellCategory.dbc\n"
"SpellChainEffects.dbc\n"
"SpellDispelType.dbc\n"
"SpellDuration.dbc\n"
"SpellEffectCameraShakes.dbc\n"
"SpellEffectNames.dbc\n"
"SpellFocusObject.dbc\n"
"SpellIcon.dbc\n"
"SpellItemEnchantment.dbc\n"
"SpellRadius.dbc\n"
"SpellRange.dbc\n"
"SpellShapeshiftForm.dbc\n"
"SpellVisual.dbc\n"
"SpellVisualEffectName.dbc\n"
"SpellVisualKit.dbc\n"
"SpellVisualPrecastTransitions.dbc\n"
"StableSlotPrices.dbc\n"
"Startup_Strings.dbc\n"
"StringLookups.dbc\n"
"TalentTab.dbc\n"
"TaxiNodes.dbc\n"
"TaxiPath.dbc\n"
"TaxiPathNode.dbc\n"
"TerrainType.dbc\n"
"TerrainTypeSounds.dbc\n"
"TransportAnimation.dbc\n"
"UnitBlood.dbc\n"
"UnitBloodLevels.dbc\n"
"VideoHardware.dbc\n"
"VocalUISounds.dbc\n"
"WeaponImpactSounds.dbc\n"
"WeaponSwingSounds2.dbc\n"
"WorldMapArea.dbc\n"
"WorldMapContinent.dbc\n"
"WorldMapOverlay.dbc\n"
"WorldSafeLocs.dbc\n"
"ZoneIntroMusicTable.dbc\n"
"ZoneMusic.dbc\n"
"ArialN.ttf\n"
"FrizQT__.ttf\n"
"Morpheus.ttf\n"
"Skurri.ttf\n"
"AbilitiesFrame\n"
"AuctionFrame\n"
"BuyoutIcon.blp\n"
"BankFrame\n"
"BattlefieldFrame\n"
"BlueGrad64.blp\n"
"Button-Backpack-Up.blp\n"
"ButtonHilight-Round.blp\n"
"ButtonHilight-Square.blp\n"
"ButtonHilight-SquareQuickslot.blp\n"
"CancelButton-Down.blp\n"
"CancelButton-Highlight.blp\n"
"CancelButton-Up.blp\n"
"CheckButtonHilight.blp\n"
"GlowStar.blp\n"
"GreenGrad64.blp\n"
"IconBorder-GlowRing.blp\n"
"OldButtonHilight-Square.blp\n"
"Spell-Reset.blp\n"
"TalkToMe.m2\n"
"TalkToMeBlue.m2\n"
"TalkToMeGreen.m2\n"
"TalkToMeGrey.m2\n"
"TalkToMeQuestionMark.m2\n"
"TalkToMeQuestion_Grey.m2\n"
"White8x8.blp\n"
"YellowOrange64.blp\n"
"CastingBar\n"
"CharacterFrame\n"
"BarFill.blp\n"
"BarHighlight.blp\n"
"ComboPoint.blp\n"
"TemporaryPortrait-Female-Dwarf.blp\n"
"TemporaryPortrait-Female-Gnome.blp\n"
"TemporaryPortrait-Female-Human.blp\n"
"TemporaryPortrait-Female-NightElf.blp\n"
"TemporaryPortrait-Female-Orc.blp\n"
"TemporaryPortrait-Female-Scourge.blp\n"
"TemporaryPortrait-Female-Tauren.blp\n"
"TemporaryPortrait-Female-Troll.blp\n"
"TemporaryPortrait-Male-Dwarf.blp\n"
"TemporaryPortrait-Male-Gnome.blp\n"
"TemporaryPortrait-Male-Human.blp\n"
"TemporaryPortrait-Male-NightElf.blp\n"
"TemporaryPortrait-Male-Orc.blp\n"
"TemporaryPortrait-Male-Scourge.blp\n"
"TemporaryPortrait-Male-Tauren.blp\n"
"TemporaryPortrait-Male-Troll.blp\n"
"TemporaryPortrait-Monster.blp\n"
"TemporaryPortrait.blp\n"
"TempPortrait.blp\n"
"TempPortraitAlphaMask.blp\n"
"TempPortraitAlphaMaskSmall.blp\n"
"ChatFrame\n"
"ChatFrameBackground.blp\n"
"ChatFrameBorder.blp\n"
"ChatFrameColorSwatch.blp\n"
"ChatFrameExpandArrow.blp\n"
"ChatFrameInnerBorder.blp\n"
"ChatFrameTab.blp\n"
"ClassTrainerFrame\n"
"ComboFrame\n"
"ComboFrameBackground.blp\n"
"Common-Input-Border.blp\n"
"ContainerFrame\n"
"CursorIconsNew.blp\n"
"GatherHerbs.blp\n"
"LootAll.blp\n"
"PickLock.blp\n"
"UnableAttack.blp\n"
"UnableBuy.blp\n"
"UnableCast.blp\n"
"UnableGatherHerbs.blp\n"
"UnableInspect.blp\n"
"UnableInteract.blp\n"
"UnableItem.blp\n"
"UnableLootAll.blp\n"
"UnableMail.blp\n"
"UnableMine.blp\n"
"UnablePickLock.blp\n"
"UnablePickup.blp\n"
"UnablePoint.blp\n"
"UnableRepair.blp\n"
"UnableSkin.blp\n"
"UnableSpeak.blp\n"
"UnableTaxi.blp\n"
"UnableTrainer.blp\n"
"DialogFrame\n"
"DialogAlertIcon.blp\n"
"FrameXML\n"
"ActionBarFrame.xml\n"
"ActionButton.lua\n"
"ActionButtonTemplate.xml\n"
"AttackButton.lua\n"
"AuctionFrame.lua\n"
"AuctionFrame.xml\n"
"BankFrame.lua\n"
"BankFrame.xml\n"
"BasicControls.xml\n"
"BattlefieldFrame.lua\n"
"BattlefieldFrame.xml\n"
"BonusActionBarFrame.lua\n"
"BonusActionBarFrame.xml\n"
"BuffFrame.lua\n"
"BuffFrame.xml\n"
"CastingBarFrame.lua\n"
"CastingBarFrame.xml\n"
"CharacterFrame.lua\n"
"CharacterFrame.xml\n"
"ChatFrame.lua\n"
"ChatFrame.xml\n"
"CinematicFrame.lua\n"
"CinematicFrame.xml\n"
"ClassTrainerFrame.lua\n"
"ClassTrainerFrame.xml\n"
"CoinPickupFrame.lua\n"
"CoinPickupFrame.xml\n"
"ColorPickerFrame.xml\n"
"CombatFeedback.lua\n"
"CombatFeedback.xml\n"
"CombatLog.lua\n"
"CombatLog.xml\n"
"ComboFrame.lua\n"
"ComboFrame.xml\n"
"ContainerFrame.lua\n"
"ContainerFrame.xml\n"
"CraftFrame.lua\n"
"CraftFrame.xml\n"
"DebugUI.xml\n"
"DurabilityFrame.lua\n"
"DurabilityFrame.xml\n"
"FadingFrame.lua\n"
"FadingFrame.xml\n"
"FloatingChatFrame.lua\n"
"FloatingChatFrame.xml\n"
"FrameXML.toc\n"
"FriendsFrame.lua\n"
"FriendsFrame.xml\n"
"GameMenuFrame.xml\n"
"GameTime.lua\n"
"GameTime.xml\n"
"GameTooltip.lua\n"
"GameTooltip.xml\n"
"GlobalStrings.lua\n"
"GossipFrame.lua\n"
"GossipFrame.xml\n"
"GuildRegistrarFrame.lua\n"
"GuildRegistrarFrame.xml\n"
"HealthBar.lua\n"
"HelpFrame.lua\n"
"HelpFrame.xml\n"
"InspectFrame.lua\n"
"InspectFrame.xml\n"
"InspectPaperDollFrame.lua\n"
"InspectPaperDollFrame.xml\n"
"ItemButtonTemplate.lua\n"
"ItemButtonTemplate.xml\n"
"ItemRef.lua\n"
"ItemRef.xml\n"
"ItemTextFrame.lua\n"
"ItemTextFrame.xml\n"
"KeyBindingFrame.lua\n"
"KeyBindingFrame.xml\n"
"LocaleProperties.lua\n"
"LootFrame.lua\n"
"LootFrame.xml\n"
"MacroFrame.lua\n"
"MacroFrame.xml\n"
"MailFrame.lua\n"
"MailFrame.xml\n"
"MainMenuBar.lua\n"
"MainMenuBar.xml\n"
"MainMenuBarBagButtons.lua\n"
"MainMenuBarBagButtons.xml\n"
"MainMenuBarMicroButtons.lua\n"
"MainMenuBarMicroButtons.xml\n"
"MerchantFrame.lua\n"
"MerchantFrame.xml\n"
"MirrorTimer.lua\n"
"MirrorTimer.xml\n"
"MoneyFrame.lua\n"
"MoneyFrame.xml\n"
"MoneyInputFrame.lua\n"
"MoneyInputFrame.xml\n"
"OpacitySliderFrame.xml\n"
"OptionsFrame.lua\n"
"OptionsFrame.xml\n"
"PaperDollFrame.lua\n"
"PaperDollFrame.xml\n"
"PartyFrame.xml\n"
"PartyMemberFrame.lua\n"
"PetActionBarFrame.lua\n"
"PetActionBarFrame.xml\n"
"PetFrame.lua\n"
"PetFrame.xml\n"
"PetitionFrame.lua\n"
"PetitionFrame.xml\n"
"PetPaperDollFrame.lua\n"
"PetPaperDollFrame.xml\n"
"PetPopup.lua\n"
"PetPopup.xml\n"
"PetStable.lua\n"
"PetStable.xml\n"
"PlayerFrame.lua\n"
"PlayerFrame.xml\n"
"QuestFrame.lua\n"
"QuestFrame.xml\n"
"QuestLogFrame.lua\n"
"QuestLogFrame.xml\n"
"QuestTimerFrame.lua\n"
"QuestTimerFrame.xml\n"
"RaidFrame.lua\n"
"RaidFrame.xml\n"
"ReputationFrame.lua\n"
"ReputationFrame.xml\n"
"SkillFrame.lua\n"
"SkillFrame.xml\n"
"SoundOptionsFrame.lua\n"
"SoundOptionsFrame.xml\n"
"SpellBookFrame.lua\n"
"SpellBookFrame.xml\n"
"StackSplitFrame.lua\n"
"StackSplitFrame.xml\n"
"StaticPopup.lua\n"
"StaticPopup.xml\n"
"StatsFrame.lua\n"
"StatsFrame.xml\n"
"SuggestFrame.lua\n"
"SuggestFrame.xml\n"
"TabardFrame.lua\n"
"TabardFrame.xml\n"
"TalentFrame.lua\n"
"TalentFrame.xml\n"
"TalentTrainerFrame.lua\n"
"TalentTrainerFrame.xml\n"
"TargetFrame.lua\n"
"TargetFrame.xml\n"
"TaxiFrame.lua\n"
"TaxiFrame.xml\n"
"TextStatusBar.lua\n"
"TextStatusBar.xml\n"
"TradeFrame.lua\n"
"TradeFrame.xml\n"
"TradeSkillFrame.lua\n"
"TradeSkillFrame.xml\n"
"TutorialFrame.lua\n"
"TutorialFrame.xml\n"
"UI.xsd\n"
"UnitFrame.lua\n"
"UnitFrame.xml\n"
"UnitPopup.lua\n"
"UnitPopup.xml\n"
"WorldFrame.lua\n"
"WorldFrame.xml\n"
"WorldMapFrame.lua\n"
"WorldMapFrame.xml\n"
"ZoneText.xml\n"
"FriendsFrame\n"
"FriendsFrameScrollIcon.blp\n"
"GuildFrame-BotLeft.blp\n"
"GuildFrame-BotRight.blp\n"
"IgnoreFrame-BotLeft.blp\n"
"IgnoreFrame-BotRight.blp\n"
"WhoFrame-BotLeft.blp\n"
"WhoFrame-BotRight.blp\n"
"WhoFrame-ColumnTabs.blp\n"
"CharacterCreate\n"
"CharacterCreate-Faction.blp\n"
"CharacterCreate-LabelFrame.blp\n"
"CharacterSelect\n"
"Glue-CharacterSelect-Highlight.blp\n"
"Glues-CharacterSelect-Highlight.blp\n"
"Glues-CharacterSelect-InactiveTab.blp\n"
"Glues-CharacterSelect-Tab.blp\n"
"Glues-InfoPanel-BotLeft.blp\n"
"Glues-InfoPanel-BotRight.blp\n"
"Glues-InfoPanel-TopLeft.blp\n"
"Glues-InfoPanel-TopRight.blp\n"
"Glue-LeftArrow-Button-Down.blp\n"
"Glue-LeftArrow-Button-Highlight.blp\n"
"Glue-LeftArrow-Button-Up.blp\n"
"Glue-Panel-Button-Disabled.blp\n"
"Glue-Panel-Button-Down.blp\n"
"Glue-Panel-Button-Highlight.blp\n"
"Glue-Panel-Button-Up.blp\n"
"Glue-RightArrow-Button-Down.blp\n"
"Glue-RightArrow-Button-Highlight.blp\n"
"Glue-RightArrow-Button-Up.blp\n"
"Glue-Tooltip-Background.blp\n"
"Glue-Tooltip-Border.blp\n"
"Glues-BigButton-Down.blp\n"
"Glues-BigButton-Glow.blp\n"
"Glues-BigButton-Highlight.blp\n"
"Glues-BigButton-Rays.blp\n"
"Glues-BigButton-Up.blp\n"
"Glues-EditBox-Background.blp\n"
"Glues-Logo-Left.blp\n"
"Glues-Logo-Right.blp\n"
"Glues-Logo.blp\n"
"Glues-Text-Gradient.blp\n"
"Glues-WoW-Logo.blp\n"
"TextPanel-Border.blp\n"
"BlastedLands1.blp\n"
"BlastedLands2.blp\n"
"BlastedLands3.blp\n"
"BlastedLands4.blp\n"
"BlastedLands5.blp\n"
"BlastedLands6.blp\n"
"DragonIsles1.blp\n"
"DragonIsles2.blp\n"
"DragonIsles3.blp\n"
"DragonIsles4.blp\n"
"DragonIsles5.blp\n"
"DragonIsles6.blp\n"
"DwarfCrest1.blp\n"
"DwarfCrest2.blp\n"
"DwarfCrest3.blp\n"
"DwarfCrest4.blp\n"
"ForsakenCrest1.blp\n"
"ForsakenCrest2.blp\n"
"ForsakenCrest3.blp\n"
"ForsakenCrest4.blp\n"
"HordeBanner1.blp\n"
"HordeBanner2.blp\n"
"HordeBanner3.blp\n"
"HordeBanner4.blp\n"
"NightElves1.blp\n"
"NightElves2.blp\n"
"NightElves3.blp\n"
"NightElves4.blp\n"
"NightElves5.blp\n"
"NightElves6.blp\n"
"NightsHollow1.blp\n"
"NightsHollow2.blp\n"
"NightsHollow3.blp\n"
"NightsHollow4.blp\n"
"ShootingDwarf1.blp\n"
"ShootingDwarf2.blp\n"
"ShootingDwarf3.blp\n"
"ShootingDwarf4.blp\n"
"ShootingDwarf5.blp\n"
"ShootingDwarf6.blp\n"
"SouthernDesolace1.blp\n"
"SouthernDesolace2.blp\n"
"SouthernDesolace3.blp\n"
"SouthernDesolace4.blp\n"
"SouthernDesolace5.blp\n"
"SouthernDesolace6.blp\n"
"SwampofSorrows1.blp\n"
"SwampofSorrows2.blp\n"
"SwampofSorrows3.blp\n"
"SwampofSorrows4.blp\n"
"SwampofSorrows5.blp\n"
"SwampofSorrows6.blp\n"
"ThousandNeedles1.blp\n"
"ThousandNeedles2.blp\n"
"ThousandNeedles3.blp\n"
"ThousandNeedles4.blp\n"
"ThousandNeedles5.blp\n"
"ThousandNeedles6.blp\n"
"ThunderBluff1.blp\n"
"ThunderBluff2.blp\n"
"ThunderBluff3.blp\n"
"ThunderBluff4.blp\n"
"ThunderBluff5.blp\n"
"ThunderBluff6.blp\n"
"TirisfallGlades1.blp\n"
"TirisfallGlades2.blp\n"
"TirisfallGlades3.blp\n"
"TirisfallGlades4.blp\n"
"TirisfallGlades5.blp\n"
"TirisfallGlades6.blp\n"
"TrollBanner1.blp\n"
"TrollBanner2.blp\n"
"TrollBanner3.blp\n"
"TrollBanner4.blp\n"
"LoadingBar\n"
"Loading-BarBackground.blp\n"
"Loading-BarBorder.blp\n"
"Loading-BarFill.blp\n"
"Loading-BarGlass.blp\n"
"Loading-BarGlow.blp\n"
"LoadingScreens\n"
"DynamicElements.blp\n"
"LoadScreenCave.blp\n"
"LoadScreenDungeon.blp\n"
"LoadScreenEasternKingdom.blp\n"
"LoadScreenEnviroment.blp\n"
"LoadScreenKalimdor.blp\n"
"LoadScreenRaid.blp\n"
"LoadScreenRuinedCity.blp\n"
"Glues-AccountLoginFrame.blp\n"
"Glues-CheckBox-Background.blp\n"
"Glues-CheckBox-Check.blp\n"
"Glues-CheckBox-Depressed.blp\n"
"Glues-CheckBox-Highlight.blp\n"
"Glues-ESRBRating.blp\n"
"Glues-KoreanRating.blp\n"
"Glues-LoginProgressFrame.blp\n"
"Glues-RealmSelect.blp\n"
"Glues-TOS-TopRight.blp\n"
"MainMenu\n"
"Glues-BlizzardLogo.blp\n"
"IronForgeSteamtank01.blp\n"
"RoadAlpha.blp\n"
"SnowSpinner.blp\n"
"ElwynnTreeTallComp_01.blp\n"
"Sidewalk.blp\n"
"Street 02.blp\n"
"AeriePeak01.blp\n"
"DarkPortal_nick_01.blp\n"
"DarkPortal_platform_01.blp\n"
"DarkPortal_platform_02.blp\n"
"DarkPortal_statue_03.blp\n"
"DarkPortal_staue_01.blp\n"
"DarkPortal_staue_02.blp\n"
"DarkPortal_stone_01.blp\n"
"DarkPortal_trim_01.blp\n"
"DurotarRock03.blp\n"
"ElwynnGrass1skin.blp\n"
"FlameLick.blp\n"
"GenericGlow2_32.blp\n"
"KalidarMidTree_purple01.blp\n"
"AnyHandleRedWrapped04.blp\n"
"BattleGladeArrow.blp\n"
"BattleGladeSword.blp\n"
"DurotarWeed01.blp\n"
"DwarfMaleSkin2.blp\n"
"Plate_A_01Silver.blp\n"
"NightElfFemaleHairSkin.blp\n"
"Robe_C_01Crimson copy.blp\n"
"HelmPlate03_OrM.blp\n"
"OrcMaleSkinArmor.blp\n"
"ShoulderPlate03_OrM.blp\n"
"ScourgeFemaleHairSkin.blp\n"
"ScourgeFemaleSkin.blp\n"
"ScourgeFemaleSkin02.blp\n"
"Leather_A_01Dark copy.blp\n"
"Leather_D_03Brown copy.blp\n"
"Stave_2H_Other_C_01Gold2.blp\n"
"TaurenMaleSkin_Extra.blp\n"
"SilverPineTree01CanopySkin.blp\n"
"SilverPineTree01TrunkSkin.blp\n"
"SpookyBush06.blp\n"
"TirrisFallCanopyTree01_Branch2.blp\n"
"TirrisFallCanopyTree01_Trunk.blp\n"
"TirrisFallCanopyTree05_Branch.blp\n"
"WarningTreeWeb.blp\n"
"WestFallGrassBaseBlurred.blp\n"
"GlueXML\n"
"AccountLogin.lua\n"
"AccountLogin.xml\n"
"CharacterCreate.lua\n"
"CharacterCreate.xml\n"
"CharacterSelect.lua\n"
"CharacterSelect.xml\n"
"CreditsFrame.lua\n"
"CreditsFrame.xml\n"
"GlueBasicControls.xml\n"
"GlueButtons.lua\n"
"GlueButtons.xml\n"
"GlueDialog.lua\n"
"GlueDialog.xml\n"
"GlueFonts.xml\n"
"GlueLocalization.lua\n"
"GlueLocalization.xml\n"
"GlueParent.lua\n"
"GlueParent.xml\n"
"GlueSplash.xml\n"
"GlueStrings.lua\n"
"GlueTemplates.lua\n"
"GlueTemplates.xml\n"
"GlueTooltip.xml\n"
"GlueXML.toc\n"
"MovieFrame.lua\n"
"MovieFrame.xml\n"
"PatchDownload.lua\n"
"PatchDownload.xml\n"
"RaceSelect.lua\n"
"RaceSelect.xml\n"
"RealmList.lua\n"
"RealmList.xml\n"
"RealmWizard.lua\n"
"RealmWizard.xml\n"
"GossipFrame\n"
"ActiveQuestIcon.blp\n"
"AvailableQuestIcon.blp\n"
"BankerGossipIcon.blp\n"
"BinderGossipIcon.blp\n"
"GossipGossipIcon.blp\n"
"HealerGossipIcon.blp\n"
"PetitionGossipIcon.blp\n"
"TabardGossipIcon.blp\n"
"TaxiGossipIcon.blp\n"
"TrainerGossipIcon.blp\n"
"UnlearnGossipIcon.blp\n"
"VendorGossipIcon.blp\n"
"GroupFrame\n"
"HelpFrame\n"
"HelpFrame-BotLeft.blp\n"
"HelpFrame-BotRight.blp\n"
"HelpFrame-Bottom.blp\n"
"HelpFrame-Top.blp\n"
"HelpFrame-TopLeft.blp\n"
"HelpFrame-TopRight.blp\n"
"HelpFrameButton-Highlight.blp\n"
"HelpFrameDivider.blp\n"
"HelpFrameTab-Active.blp\n"
"HelpFrameTab-Inactive.blp\n"
"OpenTicketIcon.blp\n"
"Ability_Ambush.blp\n"
"Ability_BackStab.blp\n"
"Ability_BullRush.blp\n"
"Ability_CheapShot.blp\n"
"Ability_CriticalStrike.blp\n"
"Ability_Defend.blp\n"
"Ability_Devour.blp\n"
"Ability_Druid_AquaticForm.blp\n"
"Ability_Druid_Bash.blp\n"
"Ability_Druid_CatForm.blp\n"
"Ability_Druid_CatFormAttack.blp\n"
"Ability_Druid_ChallangingRoar.blp\n"
"Ability_Druid_Cower.blp\n"
"Ability_Druid_Dash.blp\n"
"Ability_Druid_DemoralizingRoar.blp\n"
"Ability_Druid_Disembowel.blp\n"
"Ability_Druid_Enrage.blp\n"
"Ability_Druid_Maul.blp\n"
"Ability_Druid_Rake.blp\n"
"Ability_Druid_Ravage.blp\n"
"Ability_Druid_SupriseAttack.blp\n"
"Ability_Druid_Swipe.blp\n"
"Ability_Druid_TravelForm.blp\n"
"Ability_DualWield.blp\n"
"Ability_Ensnare.blp\n"
"Ability_EyeOfTheOwl.blp\n"
"Ability_FiegnDead.blp\n"
"Ability_GhoulFrenzy.blp\n"
"Ability_GolemStormBolt.blp\n"
"Ability_GolemThunderClap.blp\n"
"Ability_Gouge.blp\n"
"Ability_Hibernation.blp\n"
"Ability_Hunter_AimedShot.blp\n"
"Ability_Hunter_AspectOfTheMonkey.blp\n"
"Ability_Hunter_BeastCall.blp\n"
"Ability_Hunter_BeastCall02.blp\n"
"Ability_Hunter_BeastSoothe.blp\n"
"Ability_Hunter_BeastTaming.blp\n"
"Ability_Hunter_BeastTraining.blp\n"
"Ability_Hunter_CriticalShot.blp\n"
"Ability_Hunter_EagleEye.blp\n"
"Ability_Hunter_MendPet.blp\n"
"Ability_Hunter_Pathfinding.blp\n"
"Ability_Hunter_Pet_Bat.blp\n"
"Ability_Hunter_Pet_Bear.blp\n"
"Ability_Hunter_Pet_Boar.blp\n"
"Ability_Hunter_Pet_Cat.blp\n"
"Ability_Hunter_Pet_Crab.blp\n"
"Ability_Hunter_Pet_Crocolisk.blp\n"
"Ability_Hunter_Pet_Gorilla.blp\n"
"Ability_Hunter_Pet_Hyena.blp\n"
"Ability_Hunter_Pet_Owl.blp\n"
"Ability_Hunter_Pet_Raptor.blp\n"
"Ability_Hunter_Pet_Scorpid.blp\n"
"Ability_Hunter_Pet_Spider.blp\n"
"Ability_Hunter_Pet_TallStrider.blp\n"
"Ability_Hunter_Pet_Turtle.blp\n"
"Ability_Hunter_Pet_Vulture.blp\n"
"Ability_Hunter_Pet_WindSerpent.blp\n"
"Ability_Hunter_Pet_Wolf.blp\n"
"Ability_Hunter_Quickshot.blp\n"
"Ability_Hunter_RunningShot.blp\n"
"Ability_Hunter_SniperShot.blp\n"
"Ability_Hunter_SwiftStrike.blp\n"
"Ability_ImpalingBolt.blp\n"
"Ability_Kick.blp\n"
"Ability_Marksmanship.blp\n"
"Ability_MeleeDamage.blp\n"
"Ability_Mount_BlackDireWolf.blp\n"
"Ability_Mount_BlackPanther.blp\n"
"Ability_Mount_JungleTiger.blp\n"
"Ability_Mount_MechaStrider.blp\n"
"Ability_Mount_MountainRam.blp\n"
"Ability_Mount_NightmareHorse.blp\n"
"Ability_Mount_PinkTiger.blp\n"
"Ability_Mount_Raptor.blp\n"
"Ability_Mount_RidingHorse.blp\n"
"Ability_Mount_Undeadhorse.blp\n"
"Ability_Mount_WhiteDireWolf.blp\n"
"Ability_Mount_WhiteTiger.blp\n"
"Ability_Parry.blp\n"
"Ability_Physical_Taunt.blp\n"
"Ability_PierceDamage.blp\n"
"Ability_PoisonArrow.blp\n"
"Ability_Poisons.blp\n"
"Ability_PoisonSting.blp\n"
"Ability_Racial_Avatar.blp\n"
"Ability_Racial_BearForm.blp\n"
"Ability_Racial_BloodRage.blp\n"
"Ability_Racial_Cannibalize.blp\n"
"Ability_Racial_ShadowMeld.blp\n"
"Ability_Racial_Ultravision.blp\n"
"Ability_Repair.blp\n"
"Ability_Rogue_Ambush.blp\n"
"Ability_Rogue_Disguise.blp\n"
"Ability_Rogue_Distract.blp\n"
"Ability_Rogue_DualWeild.blp\n"
"Ability_Rogue_Eviscerate.blp\n"
"Ability_Rogue_FeignDeath.blp\n"
"Ability_Rogue_Feint.blp\n"
"Ability_Rogue_Garrote.blp\n"
"Ability_Rogue_KidneyShot.blp\n"
"Ability_Rogue_Rupture.blp\n"
"Ability_Rogue_SliceDice.blp\n"
"Ability_Rogue_Sprint.blp\n"
"Ability_Rogue_Trip.blp\n"
"Ability_Sap.blp\n"
"Ability_Seal.blp\n"
"Ability_SearingArrow.blp\n"
"Ability_ShockWave.blp\n"
"Ability_ShootWand.blp\n"
"Ability_Smash.blp\n"
"Ability_Spy.blp\n"
"Ability_Stealth.blp\n"
"Ability_SteelMelee.blp\n"
"Ability_TheBlackArrow.blp\n"
"Ability_Throw.blp\n"
"Ability_ThunderBolt.blp\n"
"Ability_ThunderClap.blp\n"
"Ability_TownWatch.blp\n"
"Ability_Tracking.blp\n"
"Ability_TrueShot.blp\n"
"Ability_UpgradeMoonGlaive.blp\n"
"Ability_Vanish.blp\n"
"Ability_Warrior_BattleShout.blp\n"
"Ability_Warrior_Challange.blp\n"
"Ability_Warrior_Charge.blp\n"
"Ability_Warrior_Cleave.blp\n"
"Ability_Warrior_DecisiveStrike.blp\n"
"Ability_Warrior_DefensiveStance.blp\n"
"Ability_Warrior_Disarm.blp\n"
"Ability_Warrior_InnerRage.blp\n"
"Ability_Warrior_OffensiveStance.blp\n"
"Ability_Warrior_PunishingBlow.blp\n"
"Ability_Warrior_Revenge.blp\n"
"Ability_Warrior_Riposte.blp\n"
"Ability_Warrior_SavageBlow.blp\n"
"Ability_Warrior_ShieldBash.blp\n"
"Ability_Warrior_ShieldWall.blp\n"
"Ability_Warrior_Sunder.blp\n"
"Ability_Warrior_WarCry.blp\n"
"Ability_WarStomp.blp\n"
"Ability_Whirlwind.blp\n"
"Inv_Misc_ammo_Gunpowder_03.blp\n"
"Inv_Misc_ammo_Gunpowder_04.blp\n"
"Inv_Misc_ammo_Gunpowder_05.blp\n"
"Inv_Misc_ammo_Gunpowder_06.blp\n"
"Inv_Misc_ammo_Gunpowder_07.blp\n"
"Racial_Dwarf_FindTreasure.blp\n"
"Spell_Arcane_Blink.blp\n"
"Spell_Arcane_PortalDarnassus.blp\n"
"Spell_Arcane_PortalIronForge.blp\n"
"Spell_Arcane_PortalOrgrimmar.blp\n"
"Spell_Arcane_PortalStormWind.blp\n"
"Spell_Arcane_PortalThunderBluff.blp\n"
"Spell_Arcane_PortalUnderCity.blp\n"
"Spell_Arcane_StarFire.blp\n"
"Spell_Arcane_TeleportDarnassus.blp\n"
"Spell_Arcane_TeleportIronForge.blp\n"
"Spell_Arcane_TeleportOrgrimmar.blp\n"
"Spell_Arcane_TeleportStormWind.blp\n"
"Spell_Arcane_TeleportThunderBluff.blp\n"
"Spell_Arcane_TeleportUnderCity.blp\n"
"Spell_Fire_EnchantWeapon.blp\n"
"Spell_Fire_Fire.blp\n"
"Spell_Fire_FireArmor.blp\n"
"Spell_Fire_Fireball.blp\n"
"Spell_Fire_Fireball02.blp\n"
"Spell_Fire_FireBolt.blp\n"
"Spell_Fire_FireBolt02.blp\n"
"Spell_Fire_FlameBlades.blp\n"
"Spell_Fire_FlameBolt.blp\n"
"Spell_Fire_FlameShock.blp\n"
"Spell_Fire_FlameTounge.blp\n"
"Spell_Fire_Flare.blp\n"
"Spell_Fire_Immolation.blp\n"
"Spell_Fire_Incinerate.blp\n"
"Spell_Fire_LavaSpawn.blp\n"
"Spell_Fire_MeteorStorm.blp\n"
"Spell_Fire_SealOfFire.blp\n"
"Spell_Fire_SearingTotem.blp\n"
"Spell_Fire_SelfDestruct.blp\n"
"Spell_Fire_SoulBurn.blp\n"
"Spell_Fire_SunKey.blp\n"
"Spell_Fire_Volcano.blp\n"
"Spell_Fire_WindsofWoe.blp\n"
"Spell_Frost_ChainsOfIce.blp\n"
"Spell_Frost_ChillingArmor.blp\n"
"Spell_Frost_ChillingBlast.blp\n"
"Spell_Frost_ChillingBolt.blp\n"
"Spell_Frost_FreezingBreath.blp\n"
"Spell_Frost_Frost.blp\n"
"Spell_Frost_FrostArmor.blp\n"
"Spell_Frost_FrostArmor02.blp\n"
"Spell_Frost_FrostBlast.blp\n"
"Spell_Frost_Frostbolt.blp\n"
"Spell_Frost_FrostBolt02.blp\n"
"Spell_Frost_FrostBrand.blp\n"
"Spell_Frost_FrostNova.blp\n"
"Spell_Frost_FrostShock.blp\n"
"Spell_Frost_FrostWard.blp\n"
"Spell_Frost_Glacier.blp\n"
"Spell_Frost_IceClaw.blp\n"
"Spell_Frost_IceShard.blp\n"
"Spell_Frost_IceShock.blp\n"
"Spell_Frost_IceStorm.blp\n"
"Spell_Frost_ManaBurn.blp\n"
"Spell_Frost_ManaRecharge.blp\n"
"Spell_Frost_Stun.blp\n"
"Spell_Frost_SummonWaterElemental.blp\n"
"Spell_Frost_WindWalkOn.blp\n"
"Spell_Frost_Wisp.blp\n"
"Spell_Frost_WizardMark.blp\n"
"Spell_Holy_AshesToAshes.blp\n"
"Spell_Holy_AuraOfLight.blp\n"
"Spell_Holy_BlessingOfAgility.blp\n"
"Spell_Holy_BlessingOfProtection.blp\n"
"Spell_Holy_BlessingOfStamina.blp\n"
"Spell_Holy_BlessingOfStrength.blp\n"
"Spell_Holy_Devotion.blp\n"
"Spell_Holy_DevotionAura.blp\n"
"Spell_Holy_DispelMagic.blp\n"
"Spell_Holy_DivineIntervention.blp\n"
"Spell_Holy_Dizzy.blp\n"
"Spell_Holy_Excorcism.blp\n"
"Spell_Holy_Excorcism_02.blp\n"
"Spell_Holy_FistOfJustice.blp\n"
"Spell_Holy_FlashHeal.blp\n"
"Spell_Holy_GreaterHeal.blp\n"
"Spell_Holy_HarmUndeadAura.blp\n"
"Spell_Holy_Heal.blp\n"
"Spell_Holy_Heal02.blp\n"
"Spell_Holy_HealingAura.blp\n"
"Spell_Holy_HolyBolt.blp\n"
"Spell_Holy_HolyProtection.blp\n"
"Spell_Holy_HolySmite.blp\n"
"Spell_Holy_InnerFire.blp\n"
"Spell_Holy_LayOnHands.blp\n"
"Spell_Holy_LesserHeal.blp\n"
"Spell_Holy_LesserHeal02.blp\n"
"Spell_Holy_MagicalSentry.blp\n"
"Spell_Holy_MindSooth.blp\n"
"Spell_Holy_MindVision.blp\n"
"Spell_Holy_NullifyDisease.blp\n"
"Spell_Holy_PowerWordShield.blp\n"
"Spell_Holy_PrayerOfHealing.blp\n"
"Spell_Holy_PrayerOfHealing02.blp\n"
"Spell_Holy_Purify.blp\n"
"Spell_Holy_Redemption.blp\n"
"Spell_Holy_RemoveCurse.blp\n"
"Spell_Holy_Renew.blp\n"
"Spell_Holy_Restoration.blp\n"
"Spell_Holy_Resurrection.blp\n"
"Spell_Holy_Retribution.blp\n"
"Spell_Holy_RetributionAura.blp\n"
"Spell_Holy_RighteousFury.blp\n"
"Spell_Holy_RighteousnessAura.blp\n"
"Spell_Holy_SealOfFury.blp\n"
"Spell_Holy_SealOfMight.blp\n"
"Spell_Holy_SealOfProtection.blp\n"
"Spell_Holy_SealOfRighteousness.blp\n"
"Spell_Holy_SealOfSacrifice.blp\n"
"Spell_Holy_SealOfSalvation.blp\n"
"Spell_Holy_SealOfValor.blp\n"
"Spell_Holy_SealOfWisdom.blp\n"
"Spell_Holy_SealOfWrath.blp\n"
"Spell_Holy_SearingLight.blp\n"
"Spell_Holy_SenseUndead.blp\n"
"Spell_Holy_Silence.blp\n"
"Spell_Holy_TurnUndead.blp\n"
"Spell_Holy_WordFortitude.blp\n"
"Spell_Ice_Lament.blp\n"
"Spell_Ice_MagicDamage.blp\n"
"Spell_Lightning_LightningBolt01.blp\n"
"Spell_Magic_FeatherFall.blp\n"
"Spell_Magic_LesserInvisibilty.blp\n"
"Spell_Magic_MageArmor.blp\n"
"Spell_Magic_PolymorphChicken.blp\n"
"Spell_Magic_PolymorphPig.blp\n"
"Spell_Misc_ConjureManaJewel.blp\n"
"Spell_Misc_Drink.blp\n"
"Spell_Misc_Food.blp\n"
"Spell_Nature_AbolishMagic.blp\n"
"Spell_Nature_Acid_01.blp\n"
"Spell_Nature_AgitatingTotem.blp\n"
"Spell_Nature_AncestralGuardian.blp\n"
"Spell_Nature_AstralRecal.blp\n"
"Spell_Nature_AstralRecalGroup.blp\n"
"Spell_Nature_BloodLust.blp\n"
"Spell_Nature_Brilliance.blp\n"
"Spell_Nature_CallStorm.blp\n"
"Spell_Nature_ChainLightning.blp\n"
"Spell_Nature_CorrosiveBreath.blp\n"
"Spell_Nature_CrystalBall.blp\n"
"Spell_Nature_Cyclone.blp\n"
"Spell_Nature_Drowsy.blp\n"
"Spell_Nature_DryadDispelMagic.blp\n"
"Spell_Nature_EarthBind.blp\n"
"Spell_Nature_EarthBindTotem.blp\n"
"Spell_Nature_Earthquake.blp\n"
"Spell_Nature_EarthShock.blp\n"
"Spell_Nature_EnchantArmor.blp\n"
"Spell_Nature_FaerieFire.blp\n"
"Spell_Nature_FarSight.blp\n"
"Spell_Nature_ForceOfNature.blp\n"
"Spell_Nature_GuardianWard.blp\n"
"Spell_Nature_HealingTouch.blp\n"
"Spell_Nature_HealingWaveGreater.blp\n"
"Spell_Nature_HealingWaveLesser.blp\n"
"Spell_Nature_InvisibilityTotem.blp\n"
"Spell_Nature_Invisibilty.blp\n"
"Spell_Nature_Lightning.blp\n"
"Spell_Nature_LightningBolt.blp\n"
"Spell_Nature_LightningShield.blp\n"
"Spell_Nature_MagicImmunity.blp\n"
"Spell_Nature_ManaRegenTotem.blp\n"
"Spell_Nature_MassTeleport.blp\n"
"Spell_Nature_MirrorImage.blp\n"
"Spell_Nature_MoonGlow.blp\n"
"Spell_Nature_MoonKey.blp\n"
"Spell_Nature_NaturesBlessing.blp\n"
"Spell_Nature_NaturesWrath.blp\n"
"Spell_Nature_NatureTouchDecay.blp\n"
"Spell_Nature_NatureTouchGrow.blp\n"
"Spell_Nature_NullifyDisease.blp\n"
"Spell_Nature_NullifyPoison.blp\n"
"Spell_Nature_NullifyPoison_02.blp\n"
"Spell_Nature_NullWard.blp\n"
"Spell_Nature_Polymorph.blp")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html