Repository: freelawproject/reporters-db (language: python)

Issue:
Statutory and regulatory citations from the Indigo Book
Related to #13 about adding law review abbreviations, what do you think of adding all of the non-case citation formats (statutes and regulations) from the [Indigo Book's tables](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T3)? (Or from another source if there's something easier to extract data from than that, though it doesn't look _too_ bad.)

With the new `regexes` field and with eyecite where it is, I think there's some low hanging fruit at this point to expand what we're extracting. We could get fancy, but it could be as easy as adding some new `"cite_type": "statute|law_review|..."` values to reporters.json, dropping in regexes extracted from Indigo Book, and having eyecite inspect `cite_type` to emit `StatuteCitation` or `RegulationCitation` or `LawReviewCitation` instead of `FullCaseCitation`.

"reporters-db" starts to become a little inaccurate at this point, but not sure if that's really an issue ...
Statutory and regulatory citations from the Indigo Book
Related to #13 about adding law review abbreviations, what do you think of adding all of the non-case citation formats (statutes and regulations) from the [Indigo Book's tables](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T3)? (Or from another source if there's something easier to extract data from than that, though it doesn't look _too_ bad.)

With the new `regexes` field and with eyecite where it is, I think there's some low hanging fruit at this point to expand what we're extracting. We could get fancy, but it could be as easy as adding some new `"cite_type": "statute|law_review|..."` values to reporters.json, dropping in regexes extracted from Indigo Book, and having eyecite inspect `cite_type` to emit `StatuteCitation` or `RegulationCitation` or `LawReviewCitation` instead of `FullCaseCitation`.

"reporters-db" starts to become a little inaccurate at this point, but not sure if that's really an issue ...


Discussion / hints:
We've now added [T1. Federal Judicial and Legislative Materials](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T1) in #56, and [T3. U.S. States and Other Jurisdictions](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T3) in #51.

What's missing still is [T2. Federal Administrative and Executive Materials](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2). There's a lot of interesting stuff in there, but with so many edge cases I'm not yet picking it up for the moment. For example:

* There's some stuff that wants to go in reporters.json, like "55 Agric Dec. 1121". 
* There's some stuff that wants to go in laws.json like "Treas. Reg. § 1.41-2 (1989)" and "3 C.F.R. 216" and "59 FR 9061".
* There's some stuff that I'm not sure if it counts as citations or just docket numbers, like "ASBCA No. 43466, 93-1 BCA ¶ 25,508". (Should eyecite extract docket numbers?) Anything with `<secondary source if available>` probably falls into this category.
* There's some specialty collections like trademark, patent, and copyright registrations that aren't exactly legal sources but would be interesting to include somewhere.

A lot of that is obviously important like C.F.R. and Fed. Reg.

In addition to T2, there are some other sections that still look valuable to mine for sources, with their own edge cases:

* "T4.2. Service Abbreviations", like "Am. Stock Ex. Guide (CCH)", "Admin. L.3d (BNA)". We have some of these in reporters.json already.
* "T6. Required Abbreviations for Treaty Sources", like "T.I.A.S. No. x", "<volume> U.S.T. xxx" ...
* "T7. Required Abbreviations for Arbitral Reporters"
* "T8.1. United Nations and League of Nations"
* "T8.2. Europe" (not sure how much it makes sense to pull this thread, vs. non-European sources)
We've now added [T1. Federal Judicial and Legislative Materials](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T1) in #56, and [T3. U.S. States and Other Jurisdictions](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T3) in #51.

What's missing still is [T2. Federal Administrative and Executive Materials](https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2). There's a lot of interesting stuff in there, but with so many edge cases I'm not yet picking it up for the moment. For example:

* There's some stuff that wants to go in reporters.json, like "55 Agric Dec. 1121". 
* There's some stuff that wants to go in laws.json like "Treas. Reg. § 1.41-2 (1989)" and "3 C.F.R. 216" and "59 FR 9061".
* There's some stuff that I'm not sure if it counts as citations or just docket numbers, like "ASBCA No. 43466, 93-1 BCA ¶ 25,508". (Should eyecite extract docket numbers?) Anything with `<secondary source if available>` probably falls into this category.
* There's some specialty collections like trademark, patent, and copyright registrations that aren't exactly legal sources but would be interesting to include somewhere.

A lot of that is obviously important like C.F.R. and Fed. Reg.

In addition to T2, there are some other sections that still look valuable to mine for sources, with their own edge cases:

* "T4.2. Service Abbreviations", like "Am. Stock Ex. Guide (CCH)", "Admin. L.3d (BNA)". We have some of these in reporters.json already.
* "T6. Required Abbreviations for Treaty Sources", like "T.I.A.S. No. x", "<volume> U.S.T. xxx" ...
* "T7. Required Abbreviations for Arbitral Reporters"
* "T8.1. United Nations and League of Nations"
* "T8.2. Europe" (not sure how much it makes sense to pull this thread, vs. non-European sources)

Fix patch:
diff --git a/reporters_db/data/laws.json b/reporters_db/data/laws.json
index 2a2c517..82138c7 100644
--- a/reporters_db/data/laws.json
+++ b/reporters_db/data/laws.json
@@ -1,4 +1,21 @@
 {
+    "ASBCA": [
+        {
+            "cite_type": "admin_docket",
+            "end": null,
+            "examples": [
+                "ASBCA No. 43466"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Armed Services Board of Contract Appeals",
+            "regexes": [
+                "$reporter No. (?P<docket_number>\\d+)"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
     "Ala. Admin. Code": [
         {
             "cite_type": "admin_compilation",
@@ -458,6 +475,26 @@
             "variations": []
         }
     ],
+    "C.F.R.": [
+        {
+            "cite_type": "admin_compilation",
+            "end": null,
+            "examples": [
+                "48 C.F.R. § 38.48"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Code of Federal Regulations",
+            "regexes": [
+                "(?P<chapter>\\d+) $reporter,? § $law_section"
+            ],
+            "start": null,
+            "variations": [
+                "CFR",
+                "C. F. R."
+            ]
+        }
+    ],
     "C.Z. Code": [
         {
             "cite_type": "leg_statute",
@@ -475,6 +512,58 @@
             "variations": []
         }
     ],
+    "CBCA": [
+        {
+            "cite_type": "admin_docket",
+            "end": null,
+            "examples": [
+                "CBCA No. 4845-R"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Civilian Board of Contract Appeals",
+            "notes": "Don't know valid docket number suffixes",
+            "regexes": [
+                "$reporter No. (?P<docket_number>\\d+-[A-Z])"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
+    "CFPB": [
+        {
+            "cite_type": "admin_docket",
+            "end": null,
+            "examples": [
+                "CFPB No. 2013-CFPB-0013"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Consumer Financial Protection Bureau",
+            "regexes": [
+                "$reporter No. (?P<docket_number>\\d{4}-CFPB-\\d+)"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
+    "CFTC": [
+        {
+            "cite_type": "admin_docket",
+            "end": null,
+            "examples": [
+                "CFTC No. 14-R1"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Commodity Futures Trading Commission",
+            "regexes": [
+                "$reporter No. (?P<docket_number>\\d+-[A-Z\\d]+)"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
     "Cal. Adv. Legis. Serv.": [
         {
             "cite_type": "leg_session",
@@ -4840,6 +4929,23 @@
             "variations": []
         }
     ],
+    "Registration": [
+        {
+            "cite_type": "admin_filing",
+            "end": null,
+            "examples": [
+                "Registration No. 3,886,986"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Trademark Registration",
+            "regexes": [
+                "$reporter No\\. (?P<number>\\d[\\d,]*)"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
     "Repub. Tex. Laws": [
         {
             "cite_type": "leg_session",
@@ -4993,6 +5099,23 @@
             "variations": []
         }
     ],
+    "SBA": [
+        {
+            "cite_type": "admin_docket",
+            "end": null,
+            "examples": [
+                "SBA No. SIZ-5707"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Small Business Administration",
+            "regexes": [
+                "$reporter No. (?P<docket_number>(?:NAICS|BDP|VET|SIZ|SDBA)-\\d+)"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
     "Stat.": [
         {
             "cite_type": "leg_session",
@@ -5299,6 +5422,40 @@
             "variations": []
         }
     ],
+    "Treas. Reg.": [
+        {
+            "cite_type": "admin_compilation",
+            "end": null,
+            "examples": [
+                "Treas. Reg. § 1.41-2"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "Department of the Treasury",
+            "regexes": [
+                "$reporter § $law_section"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
+    "U.S. Patent": [
+        {
+            "cite_type": "admin_filing",
+            "end": null,
+            "examples": [
+                "U.S. Patent No. 8,112,504 B2"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "jurisdiction": "United States",
+            "name": "U.S. Patent",
+            "regexes": [
+                "$reporter No\\. (?P<number>\\d[\\d,]*)(?: (?P<kind_code>[A-Z]\\d?))?"
+            ],
+            "start": null,
+            "variations": []
+        }
+    ],
     "U.S.C.": [
         {
             "cite_type": "leg_statute",
@@ -5316,6 +5473,8 @@
             ],
             "start": null,
             "variations": [
+                "U. S. C.",
+                "USC",
                 "U.S.C.A.",
                 "U.S.C.S.",
                 "U.S.C.U."
diff --git a/reporters_db/data/regexes.json b/reporters_db/data/regexes.json
index 95ac735..49eb726 100644
--- a/reporters_db/data/regexes.json
+++ b/reporters_db/data/regexes.json
@@ -2,6 +2,8 @@
     "full_cite": {
         "": "$volume $reporter,? $page",
         "#": "Standard citation",
+        "cch": "(?:$volume_with_digit_suffix )?$full_cite_paragraph",
+        "cch#": "Cite in CCH service format, like '1982-1 Trade Cas. (CCH) par. 64,689'",
         "format_neutral": {
             "": "$volume_year-$reporter-$page",
             "#": "Format neutral cite, like '2000-Ohio-123'",
@@ -25,6 +27,18 @@
         "single_volume": "(?:(?P<volume>1) )?$reporter $page",
         "year_page": "$reporter $volume_year-$page"
     },
+    "law": {
+        "#": "Regexes used in laws.json",
+        "day": "(?P<day>\\d{1,2}),?",
+        "month": "(?P<month>[A-Z][a-z]+\\.?)",
+        "section": "(?P<section>\\d+(?:[\\-.:]\\d+){,3})",
+        "section#": "Section like 1-2-3, 1.2.3, or 1:2-3.4",
+        "subject": "(?P<subject>$law_subject_word(?: $law_subject_word| &){,4})",
+        "subject#": "One to five word statute subject like 'Parks Rec. & Hist. Preserv.', 'Not-for-Profit Corp.', 'Alt. County Gov’t', 'R.R.'",
+        "subject_word": "[A-Z][.\\-'A-Za-z]*",
+        "subject_word#": "Single word in statute subject, like Rec., Gov't, or Not-for-Profit",
+        "year": "(?P<year>1\\d{3}|20\\d{2})"
+    },
     "page": {
         "": "(?P<page>\\d+)",
         "#": "Standard page number",
@@ -44,18 +58,6 @@
         "": "(?P<reporter>$edition)",
         "#": "Standard reporter"
     },
-    "law": {
-        "#": "Regexes used in laws.json",
-        "day": "(?P<day>\\d{1,2}),?",
-        "month": "(?P<month>[A-Z][a-z]+\\.?)",
-        "section": "(?P<section>\\d+(?:[\\-.:]\\d+){,3})",
-        "section#": "Section like 1-2-3, 1.2.3, or 1:2-3.4",
-        "subject": "(?P<subject>$law_subject_word(?: $law_subject_word| &){,4})",
-        "subject#": "One to five word statute subject like 'Parks Rec. & Hist. Preserv.', 'Not-for-Profit Corp.', 'Alt. County Gov’t', 'R.R.'",
-        "subject_word": "[A-Z][.\\-'A-Za-z]*",
-        "subject_word#": "Single word in statute subject, like Rec., Gov't, or Not-for-Profit",
-        "year": "(?P<year>1\\d{3}|20\\d{2})"
-    },
     "volume": {
         "": "(?P<volume>\\d+)",
         "#": "Standard volume number",
diff --git a/reporters_db/data/reporters.json b/reporters_db/data/reporters.json
index 0b36b7a..9884b13 100644
--- a/reporters_db/data/reporters.json
+++ b/reporters_db/data/reporters.json
@@ -84,6 +84,23 @@
             }
         }
     ],
+    "A.E.C.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "A.E.C.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Atomic Energy Commission Reports",
+            "variations": {}
+        }
+    ],
     "A.F.T.R. (P-H)": [
         {
             "cite_type": "specialty",
@@ -422,6 +439,26 @@
             }
         }
     ],
+    "Agric. Dec": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Agric. Dec": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "55 Agric Dec. 1121"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Agriculture Decisions",
+            "variations": {}
+        }
+    ],
     "Aik.": [
         {
             "cite_type": "state",
@@ -1238,6 +1275,50 @@
             "variations": {}
         }
     ],
+    "BCA": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "BCA": {
+                    "end": null,
+                    "regexes": [
+                        "$full_cite_cch"
+                    ],
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "93-1 BCA ¶ 25,508"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Board of Contract Appeals Decisions, published by Commerce Clearing House",
+            "variations": {}
+        }
+    ],
+    "BNA OSHC": [
+        {
+            "cite_type": "specialty",
+            "editions": {
+                "BNA OSHC": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "http://www.bna.com/occupational-safety--p4900/",
+            "mlz_jurisdiction": [],
+            "name": "Occupational Safety & Health Cases",
+            "notes": "See https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2 for nonstandard abbreviation",
+            "variations": {
+                "O.S.H. Cas.": "BNA OSHC",
+                "O.S.H. Cas. (BNA)": "BNA OSHC",
+                "O.S.H. Cases": "BNA OSHC",
+                "O.S.H. Cases (BNA)": "BNA OSHC"
+            }
+        }
+    ],
     "BTA LEXIS": [
         {
             "cite_type": "specialty_lexis",
@@ -1429,7 +1510,7 @@
                 "Bankr. L. Rep.": {
                     "end": null,
                     "regexes": [
-                        "$full_cite_paragraph"
+                        "$full_cite_cch"
                     ],
                     "start": "1750-01-01T00:00:00"
                 }
@@ -2248,6 +2329,33 @@
             "variations": {}
         }
     ],
+    "CCH OSHD": [
+        {
+            "cite_type": "specialty",
+            "editions": {
+                "CCH OSHD": {
+                    "end": null,
+                    "regexes": [
+                        "$full_cite_cch"
+                    ],
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "CCH OSHD ¶ 33123"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [],
+            "name": "Occupational Safety and Health Decisions (CCH)",
+            "variations": {
+                "O.S.H. Dec. (CCH)": "CCH OSHD",
+                "O.S.H.D.": "CCH OSHD",
+                "O.S.H.D. (CCH)": "CCH OSHD",
+                "O.S.H.Dec. (CCH)": "CCH OSHD",
+                "OSHD (CCH)": "CCH OSHD"
+            }
+        }
+    ],
     "CIT": [
         {
             "cite_type": "neutral",
@@ -3247,6 +3355,23 @@
             }
         }
     ],
+    "Comp. Gen.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Comp. Gen.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Decisions of the Comptroller General of the United States",
+            "variations": {}
+        }
+    ],
     "Cong. Index(CCH)": [
         {
             "cite_type": "specialty",
@@ -3470,7 +3595,7 @@
                 "Cont. Cas. Fed.": {
                     "end": null,
                     "regexes": [
-                        "$volume $reporter $paragraph_marker_optional$page_with_commas"
+                        "$full_cite_cch"
                     ],
                     "start": "1750-01-01T00:00:00"
                 }
@@ -4085,6 +4210,26 @@
             }
         }
     ],
+    "Dec. Comm'r Pat.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Dec. Comm'r Pat.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "1885 Dec. Comm’r Pat. 279"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Decisions of the Commissioner of Patents",
+            "variations": {}
+        }
+    ],
     "Del.": [
         {
             "cite_type": "state",
@@ -4453,6 +4598,23 @@
             }
         }
     ],
+    "E.A.D.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "E.A.D.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Environmental Administrative Decisions",
+            "variations": {}
+        }
+    ],
     "E.H. Smith": [
         {
             "cite_type": "state",
@@ -4612,7 +4774,7 @@
                 "Empl. Prac. Dec. (CCH)": {
                     "end": null,
                     "regexes": [
-                        "$volume $reporter $paragraph_marker_optional$page_with_commas"
+                        "$full_cite_cch"
                     ],
                     "start": "1971-01-01T00:00:00"
                 }
@@ -4991,6 +5153,44 @@
             }
         }
     ],
+    "F.C.C.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "F.C.C.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                },
+                "F.C.C.2d": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Communications Commission Reports",
+            "variations": {}
+        }
+    ],
+    "F.L.R.A.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "F.L.R.A.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Decisions of the Federal Labor Relations Authority",
+            "variations": {}
+        }
+    ],
     "F.R.D.": [
         {
             "cite_type": "specialty",
@@ -5112,6 +5312,43 @@
             "variations": {}
         }
     ],
+    "F.T.C.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "F.T.C.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Trade Commission",
+            "variations": {}
+        }
+    ],
+    "FCC Rcd": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "FCC Rcd": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "29 FCC Rcd 5561"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Communications Commission Record",
+            "variations": {}
+        }
+    ],
     "FED App.": [
         {
             "cite_type": "federal",
@@ -5145,6 +5382,29 @@
             "variations": {}
         }
     ],
+    "FERC": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "FERC": {
+                    "end": null,
+                    "regexes": [
+                        "$full_cite_cch"
+                    ],
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "141 FERC ¶ 61,049"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Energy Guidelines: FERC Reports",
+            "variations": {}
+        }
+    ],
     "FL": [
         {
             "cite_type": "neutral",
@@ -5177,6 +5437,23 @@
             }
         }
     ],
+    "FMSHRC": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "FMSHRC": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Mine Safety and Health Review Commission Decisions",
+            "variations": {}
+        }
+    ],
     "FPSC": [
         {
             "cite_type": "state",
@@ -5594,6 +5871,29 @@
             "variations": {}
         }
     ],
+    "Fed. Reg.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Fed. Reg.": {
+                    "end": null,
+                    "regexes": [
+                        "$volume $reporter $page_with_commas"
+                    ],
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "examples": [
+                "60 Fed. Reg. 68,380"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Federal Register",
+            "variations": {}
+        }
+    ],
     "Fed. Sec. L. Rep. (CCH)": [
         {
             "cite_format": "{reporter} {page}",
@@ -5602,7 +5902,7 @@
                 "Fed. Sec. L. Rep. (CCH)": {
                     "end": null,
                     "regexes": [
-                        "$full_cite_paragraph_with_suffix"
+                        "$full_cite_cch"
                     ],
                     "start": "1750-01-01T00:00:00"
                 }
@@ -6980,6 +7280,44 @@
             "variations": {}
         }
     ],
+    "I. & N. Dec.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "I. & N. Dec.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Administrative Decisions Under Immigration and Nationality Laws",
+            "variations": {}
+        }
+    ],
+    "I.C.C.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "I.C.C.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                },
+                "I.C.C.2d": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Interstate Commerce Commission Reporter",
+            "variations": {}
+        }
+    ],
     "I.E.R. Cas. (BNA)": [
         {
             "cite_type": "specialty",
@@ -6999,6 +7337,23 @@
             }
         }
     ],
+    "I.R.B.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "I.R.B.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Internal Revenue Bulletin",
+            "variations": {}
+        }
+    ],
     "I.T.R.D. (BNA)": [
         {
             "cite_type": "specialty",
@@ -7489,6 +7844,23 @@
             "variations": {}
         }
     ],
+    "Interior Dec.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Interior Dec.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Interior Decisions",
+            "variations": {}
+        }
+    ],
     "Iowa": [
         {
             "cite_type": "state",
@@ -8804,6 +9176,23 @@
             }
         }
     ],
+    "M.S.P.B.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "M.S.P.B.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Decisions of the United States Merit Systems Protection Board",
+            "variations": {}
+        }
+    ],
     "M.S.P.R.": [
         {
             "cite_type": "specialty",
@@ -10475,6 +10864,57 @@
             "variations": {}
         }
     ],
+    "N.M.B.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "N.M.B.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Decisions of the National Mediation Board",
+            "variations": {}
+        }
+    ],
+    "N.R.C.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "N.R.C.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Nuclear Regulatory Commission Issuances",
+            "variations": {}
+        }
+    ],
+    "N.T.S.B.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "N.T.S.B.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "National Transportation Safety Board Decisions",
+            "variations": {}
+        }
+    ],
     "N.W.": [
         {
             "cite_type": "state_regional",
@@ -10868,6 +11308,9 @@
                     "start": "1750-01-01T00:00:00"
                 }
             },
+            "examples": [
+                "370 NLRB No. 128"
+            ],
             "mlz_jurisdiction": [],
             "name": "National Labor Relations Board Neutral Cite",
             "variations": {}
@@ -11235,36 +11678,23 @@
             "variations": {}
         }
     ],
-    "O.S.H. Cas. (BNA)": [
+    "O.R.W.": [
         {
-            "cite_type": "specialty",
-            "editions": {
-                "O.S.H. Cas. (BNA)": {
-                    "end": null,
-                    "start": "1750-01-01T00:00:00"
-                }
-            },
-            "href": "http://www.bna.com/occupational-safety--p4900/",
-            "mlz_jurisdiction": [],
-            "name": "Occupational Safety & Health Cases",
-            "variations": {
-                "O.S.H. Cas.": "O.S.H. Cas. (BNA)",
-                "O.S.H. Cases": "O.S.H. Cas. (BNA)",
-                "O.S.H. Cases (BNA)": "O.S.H. Cas. (BNA)"
-            }
-        }
-    ],
-    "O.S.H. Dec. (CCH)": [
-        {
-            "cite_type": "specialty",
+            "cite_type": "federal",
             "editions": {
-                "O.S.H. Dec. (CCH)": {
+                "O.R.W.": {
                     "end": null,
                     "start": "1750-01-01T00:00:00"
                 }
             },
-            "mlz_jurisdiction": [],
-            "name": "Occupational Safety and Health Decisions",
+            "examples": [
+                "6 O.R.W. 479"
+            ],
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Ocean Resources and Wildlife Reporter",
             "variations": {}
         }
     ],
@@ -11282,24 +11712,6 @@
             "variations": {}
         }
     ],
-    "O.S.H.D. (CCH)": [
-        {
-            "cite_type": "specialty",
-            "editions": {
-                "O.S.H.D. (CCH)": {
-                    "end": null,
-                    "start": "1750-01-01T00:00:00"
-                }
-            },
-            "mlz_jurisdiction": [],
-            "name": "Occupational Safety and Health Decisions (CCH)",
-            "variations": {
-                "O.S.H.D.": "O.S.H.D. (CCH)",
-                "O.S.H.Dec. (CCH)": "O.S.H.D. (CCH)",
-                "OSHD (CCH)": "O.S.H.D. (CCH)"
-            }
-        }
-    ],
     "O.S.U.": [
         {
             "cite_type": "state",
@@ -13130,6 +13542,23 @@
             "variations": {}
         }
     ],
+    "Pub. Lands Dec.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Pub. Lands Dec.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Interior and General Land Office Cases Relating to Public Lands",
+            "variations": {}
+        }
+    ],
     "R.I.": [
         {
             "cite_type": "state",
@@ -13719,17 +14148,20 @@
             }
         }
     ],
-    "S.E.C. Docket": [
+    "S.T.B.": [
         {
-            "cite_type": "specialty",
+            "cite_type": "federal",
             "editions": {
-                "S.E.C. Docket": {
+                "S.T.B.": {
                     "end": null,
                     "start": "1750-01-01T00:00:00"
                 }
             },
-            "mlz_jurisdiction": [],
-            "name": "Securities and Exchange Commission Docket",
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Surface Transportation Board Reporter",
             "variations": {}
         }
     ],
@@ -13808,6 +14240,22 @@
             "variations": {}
         }
     ],
+    "SEC Docket": [
+        {
+            "cite_type": "specialty",
+            "editions": {
+                "SEC Docket": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "mlz_jurisdiction": [],
+            "name": "Securities and Exchange Commission Docket",
+            "variations": {
+                "S.E.C. Docket": "SEC Docket"
+            }
+        }
+    ],
     "SEC Jud. Dec.": [
         {
             "cite_type": "specialty",
@@ -15274,7 +15722,7 @@
                 "Trade Cas. (CCH)": {
                     "end": null,
                     "regexes": [
-                        "$volume_with_digit_suffix $reporter $paragraph_marker_optional$page_with_commas"
+                        "$full_cite_cch"
                     ],
                     "start": "1914-01-01T00:00:00"
                 }
@@ -15343,6 +15791,23 @@
             "variations": {}
         }
     ],
+    "Treas. Dec. Int. Rev.": [
+        {
+            "cite_type": "federal",
+            "editions": {
+                "Treas. Dec. Int. Rev.": {
+                    "end": null,
+                    "start": "1750-01-01T00:00:00"
+                }
+            },
+            "href": "https://law.resource.org/pub/us/code/blue/IndigoBook.html#T2",
+            "mlz_jurisdiction": [
+                "us;federal"
+            ],
+            "name": "Treasury Decisions Under Internal Revenue Laws",
+            "variations": {}
+        }
+    ],
     "Tuck. & Cl.": [
         {
             "cite_type": "state",
@@ -15637,7 +16102,7 @@
                 "U.S. Tax Cas. (CCH)": {
                     "end": null,
                     "regexes": [
-                        "$volume_with_digit_suffix $reporter $paragraph_marker_optional$page_with_commas"
+                        "$full_cite_cch"
                     ],
                     "start": "1900-01-01T00:00:00"
                 }


Test patch:
diff --git a/tests.py b/tests.py
index 7ff382e..31351a1 100644
--- a/tests.py
+++ b/tests.py
@@ -155,7 +155,7 @@ def check_dates(self, start, end):
 
     def check_ascii(self, obj):
         """Check that all strings in obj match a list of expected ascii characters."""
-        allowed_chars = r"[ 0-9a-zA-Z.,\-'&(){}\[\]\\$§_?<>+:/]"
+        allowed_chars = r"[ 0-9a-zA-Z.,\-'&(){}\[\]\\$§_?<>+*|:/]"
         for s in emit_strings(obj):
             remaining_chars = re.sub(allowed_chars, "", s)
             self.assertFalse(
@@ -178,7 +178,7 @@ def check_whitespace(self, obj):
 class RegexesTest(BaseTestCase):
     """Tests for regexes.json"""
 
-    def text_json_format(self):
+    def test_json_format(self):
         self.check_json_format("regexes.json")
 
 
@@ -340,7 +340,7 @@ def test_regexes(self):
             ):
                 self.check_regexes(regexes, examples)
 
-    def text_json_format(self):
+    def test_json_format(self):
         self.check_json_format("reporters.json")
 
 
@@ -405,7 +405,7 @@ def test_regexes(self):
             with self.subTest("Check journal regexes", name=journal["name"]):
                 self.check_regexes(regexes, journal.get("examples", []))
 
-    def text_json_format(self):
+    def test_json_format(self):
         self.check_json_format("journals.json")
 
     def test_dates(self):