The Bucketizer Script
The regex silently fails on inputs that don't have length a multiple of 4; i.e. no results are returned. Things that fail silently are incredibly hard to debug. It's easy to imagine trying to figure out why no rows are being inserted for the input

jvqbjqbxvvlxlcwkuivasoeljaxamrthcecbudnxvqdboxroudfvrwoureqisaldcduhauoqtxdclcw


until you realise that it only has 79 characters.

You would want to measure the performance, but I would suggest not using a regex and writing a simple method, like so

private static IEnumerable&lt;string&gt; ToBuckets(string input)
{
    const int Length = 4;
    for (var i = 0; i &lt; input.Length; i += Length)
    {
        yield return input.Substring(i, Length);
    }
}


We should add input validation to make it easier to find out exactly what went wrong.

if (input == null)
{
    throw new ArgumentNullException("input");
}

if (input.Length % Length != 0)
{
    throw new ArgumentException(string.Format("Argument length must be a multiple of {0}", Length));
}




I made a microbenchmark comparing the two methods that you can find here. For 100,000 calls, the regex solution takes ~2.5s compared to ~0.2s for this version.



It looks like you're using exceptions for control flow with the FormatException. I would suggest making the try-catch more specific, both in the code that is executed within the try, and in the exceptions that you're catching.

If we split out the OutputSizesBuffer parts to its own method, we end up with something like this, which I find a bit cleaner (illustrative code only)

var buckets = ToBuckets(Row.Sizes).Select(bucket =&gt; bucket.Trim()).ToArray();
for (int index = 0; index &lt; buckets.Length; index++)
{
    // Don't output a row for empty buckets.
    if (bucket.Length == 0)
    {
        continue;
    }

    if (bucket.Contains(' '))
    {
        // Size codes don't contain whitespace; something went really wrong if that's the case.
        FireError(string.Format(Resources.BucketContainsWhiteSpace, bucket));
        return;
    }

    try
    {
        AddRow(index + 1, bucket);
    }
    catch (SomeSpecificException e)
    {
        FireError(e.Message);
        return;
    }
}