in reply to Regex Quantifiers

($Regex1) = ($String =~ /.*(\d{6,8}).*/);
I suspect your first .* is being too greedy and eating up the 1st 2 digits from your \d{6,8} range. This gives your 8 digits:
($Regex1) = ($String =~ /(\d{6,8})/);