Code:
(?x) ^ (@#D(?:GREGORIAN|JULIAN|HEBREW|FRENCH\s*R)@ \s*)? (?:(ABT|EST|CAL|INT) \s*)? (?:(\d+) \s*)?
(?:(JUN|AUG|VEND|TIS) \s*)? (\d+/\d+|\d*) \s* (B\.C\.|BC)? $
Wenn nach dem BC keine Leerstellen folgen dürfen, sonst am Ende vor dem $ nochmal \s*
Die Erklärung zum Aufbau des Datums verstehe ich schon, nicht klar ist mir, was man mit so inhomogenen Datumsangaben in der Folge anfangen kann - aber das musst du wissen