• Here is the complete error message.

    Error Messages:

    --------------------------------------------------

    No match for regular expression; component fails.

    --------------------------------------------------

    SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Regex" (49) failed with error code 0xC0209029. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

    --------------------------------------------------

    SSIS Error Code DTS_E_THREADFAILED. Thread "WorkThread0" has exited with error code 0xC0209029. There may be error messages posted before this with more information on why the thread has exited.

    --------------------------------------------------

    The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.

    --------------------------------------------------

    SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Get Pre-Staged" (2175) returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

    --------------------------------------------------

    SSIS Error Code DTS_E_THREADFAILED. Thread "SourceThread0" has exited with error code 0xC0047038. There may be error messages posted before this with more information on why the thread has exited.

    What the regex is doing is taking one large field (the sample records I sent) and parsing them down into multiple fields. Here is the expression.

    (?<Start>.{3})(?<PostingKey>.{3})(?<ReasonCode>.{4})(?<Account>.{11})(?<BaselineDate>.{11})(?<NetDueDate>.{11})(?<Text>.{51})(?<RefKey2>.{13})(?<Amount>.{19})(?<GLAccount>.{11})(?<ProfitCenter>.{11})(?<RefKey1>.{13})(?<Assignment>.{51})(?<DocumentNumber>.{11})(?<LineItem>.{4})(?<DeadSpace>.{22})(?<Start2>.{3})(?<DocumentDate>.{11})(?<ClearingDate>.{11})(?<PostingDate>.{11})(?<BranchAccount>.{10})(?<DiscPercent1>.{7})(?<Days1>.{5})(?<Days2>.{5})(?<DiscountAmount>.{19})(?<DiscountBaseAmount>.{19})(?<UserName>.{13})(?<DocumentType>.{3})(?<CompanyCode>.{5})(?<Reference>.{17})(?<LocalCurrency>.{6})(?<DocumentHeaderText>.{51})(?<BusinessArea>.{5})(?<RefKey3>.{21})(?<InvoiceReference>.{11})(?<CreditControlArea>.{5})(?<ClearingDocument>.{10})(?<End>.*)

    A huge problem is that the records aren't moved over in the parsed table in the same order they are in the cleaned records table. That makes it next to impossible to correctly identify the problem record. ARGHHHHH