public static int? GetYearFromName([NotNull] string name) {
if (name == null) throw new ArgumentNullException(nameof(name));
if (name.Length == 0 || !char.IsDigit(name[name.Length - 1])) return null;
var result = NameYearRegex.Match(name);
if (!result.Success) return null;
var matched = result.Groups[1].Value;
if (string.IsNullOrEmpty(matched)) matched = result.Groups[2].Value;
var value = int.Parse(matched, NumberStyles.Any, CultureInfo.InvariantCulture);
return value < 1000 ? value < 18 ? 2000 + value : 1900 + value : value;
}