/
^(?'Fare'(?'IgnoreProfix'[A-Z]+-|\/[A-Z]+)?(?'ItineraryDate'(?'Date'\d{2})(?'Month'[A-Z]{3})(?'Year'\d{2}))?(?'Origin'[A-Z]{3})?\s?(?'Airline'(.[0-9A-Z]{3})|([0-9A-Z]{2}))\s(?'Connection'[X][\/])?((?'CodeECity'E\/)|(?'CodeB'B\/)|(?'CodeT'T\/)|(?'CodeL'L\/))*(?'Destination'([A-Z][\/-])?[A-Z]{3})?(?!\d{1,3}[A-LN-RT-Z\s])\s?(?'SegmentBaseEMS'\d+M\s?)?(?'SegmentBase'(?![0-9][A-Z])\d{1,6}(\.\d{1,4})?\s?)?(((?'CodeENoCity'E\/XXX)|(?'SegmentFeeQ'[Q](\s?(?'QCity1'[A-Z]{3})(?'QCity2'[A-Z]{3}))?(?'SegmentFeeQEMS'\d+M)?(?'FeeAmountQ'\d{1,6}(\.\d{1,4})?))|(?'MilePrinciple'M\s?(?'MilePrincipleCityPair'[A-Z]{6})?\s?(?'MilePrincipleMile'\d{1,6}(\.\d{1,4})?)?)|(?'SegmentFeeR'[R](?'SegmentFeeREMS'\d+M)?(?'FeeAmountR'\d{1,6}(\.\d{1,4})?))|(?'SegmentFeeS'(?'SegmentFeeSCnt'[0-9])*S(?'SegmentFeeSEMS'\d+M)?(?'FeeAmountS'\d{1,6}(\.\d{1,4})?))|(M?\/(?'ITFare'IT))|(M?\/(?'BTFare'BT))|(\/\/(?'UnflownIncludeCity'[A-Z]{3})))\s?)*(?'SegmentBaseEMS1'\d+M\s?)?(?'SegmentBase1'(?![0-9][A-Z])\d{1,6}(\.\d{1,4})?\s?)?(?'FareBasis'(?<=[0-9])((?![A-Z][A-Z0-9]\s([A-Z]\/)?[A-Z]{3}|NUC|END|[A-Z]{3}\s[0-9])|(?=[A-Z][A-Z0-9]\sNUC))[A-Z][A-Z0-9\/]{0,8})?(\s?((?'SegmentFeeQ1'[Q](?'SegmentFeeQEMS1'\d+M)?(?'FeeAmountQ1'\d{1,6}(\.\d{1,4})?))|(?'CPMC'P\sR\/(?'CPMCCity1'[A-Z]{3})(\/)?(?'CPMCCity2'[A-Z]{3})?\s?(?'CPMCEMS'\d+M)?(?'CPMCAmt'\d{1,6}(\.\d{1,4})?))|(?'CodeP'P\s(?'CodePCityPair1'[A-Z]{6})\s?(?'CodePCityPair2'[A-Z]{6})?\s?(?'CodePEMS'\d+M)?(?'CodePAmt'\d{1,6}(\.\d{1,4})?))|(?'MilePrinciple1'M\s?(?'MilePrincipleCityPair1'[A-Z]{6})?\s?(?'MilePrincipleMile1'\d{1,6}(\.\d{1,4})?)?)|(?'OSC'H\s(?'OSCCityPair'[A-Z]{6})\s?(?'OSCAmt'\d{1,6}(\.\d{1,4})?))|(?'RSC'U\s(\s?(?'RSCCityPair'[A-Z]{6}))+\s?(?'RSCAmt'\d{1,6}(\.\d{1,4})?))|(?'LCP'C\/(?'LCPCity'[A-Z]{3})(?'LCPCityPair'\s?[A-Z]{6})*\s?(?'LCPAmt'\d{1,6}(\.\d{1,4})?))|(?'HighClassDifferential'D\s(((?'ClassCode'[A-Z])+\/)?(?'HCDCityPair'[A-Z]{6})\s?((M)|(?'HCDEMS'\d+M)|\s|(?'HCDAmt'\d{1,6}(\.\d{1,4})?))\s?)+)|(\/-(?'UnflownExcludeCity'[A-Z]{3}))|(\/\/(?'UnflownIncludeCity1'[A-Z]{3})))?\s?)*)+\s?((?'NUC'\s?([A-Z]{3})\s?(?'BaseTotal'\d{1,6}(\.\d{1,4})?))\s?)?(END\s?(?'Exch'ROE\s?\d+(\.\d+)?)?)?
/
g