public static Long parseMetricByteSizeString(final String str) throws NumberFormatException {
        return parseNumberString(str, METRIC_BYTE_SIZE_DIVIDER);
    }
Parses human-readable byte counts that use metric unit prefixes into a {@link Long}.
e.g. '1.1kB' => 1100, '1MB' => 1_000_000. The case of the unit prefixes is ignored.
Valid unit prefixes (case-insensitive) are:
<pre>{@code "B" "bytes"}</pre>
<pre>{@code "k" "kB"}</pre>
<pre>{@code "M" "MB"}</pre>
<pre>{@code "G" "GB"}</pre>
<pre>{@code "T" "TB"}</pre>
<pre>{@code "P" "PB"}</pre>
If there is no unit prefix then the number is assumed to be in bytes and is
converted from the string as is.

@return The number or null for a null/empty input.
@throws NumberFormatException If it can't be parsed.
stroom-util-shared/src/main/java/stroom/util/shared/ModelStringUtil.java