diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java
index c60bbaf..35afabf 100644
--- a/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java
+++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java
@@ -50,6 +50,12 @@
       "(?:die (?:Wörter|Worte)|das Wort|die Angabe|die Zahl|die Verweisung|die Textstelle)";
   private static final String Z = "«(\\d+)»";
 
+  // Verb der Wortersetzung. Das Handbuch der Rechtsförmlichkeit kennt nur „ersetzt“; das bremische
+  // Gesetzblatt schreibt daneben „geändert“ („werden die Worte «1» durch die Worte «2» geändert“,
+  // Brem.GBl. 2026 Nr. 87 Nr. 5 a). Gemeint ist dasselbe. Die Rahmenform „wird wie folgt geändert“
+  // gerät dadurch nicht in Gefahr: Sie führt weder Zieltext noch „durch“.
+  private static final String ERSETZUNGS_VERB = "(?:ersetzt|geändert)";
+
   // Der Doppelpunkt fehlt gelegentlich (Seitenumbruch-Artefakt); für einen Punkt mit Unterpunkten
   // ist die Rahmenform trotzdem eindeutig.
   private static final Pattern KONTEXT =
@@ -133,7 +139,9 @@
               + WOERTER
               + " )?"
               + Z
-              + " ersetzt\\.$");
+              + " "
+              + ERSETZUNGS_VERB
+              + "\\.$");
 
   // Wie ERSETZUNG, nur ohne Fundstelle — die liefert der Kontextrahmen. Das Objekt nach „durch“
   // darf auch hier verkürzt sein („Die Angabe „X“ wird durch „Y“ ersetzt“, hessisches GVBl).
@@ -145,7 +153,9 @@
               + WOERTER
               + " )?"
               + Z
-              + " ersetzt\\.$");
+              + " "
+              + ERSETZUNGS_VERB
+              + "\\.$");
 
   // „In Nummer 2 werden nach den Wörtern «1» die Wörter «2» durch die Wörter «3» ersetzt.“ —
   // Ersetzung mit Positionsanker; der Anker präzisiert nur die Fundstelle, die Eindeutigkeits-
@@ -179,6 +189,22 @@
 
   // „In Absatz 1 Satz 2 wird der Punkt am Ende durch folgende Wörter / den folgenden Wortlaut
   // ersetzt: „…““ — der Ersatz steht als Zitatblock hinter dem Doppelpunkt.
+  // „In Absatz 2 Satz 1 wird am Textende nach dem Wort «1» das Satzzeichen «2» aufgehoben und
+  // folgendes angefügt: «3».“ (Brem.GBl. 2026 Nr. 87 Nr. 5 c) — der Sache nach die Ersetzung des
+  // Schlusszeichens durch den angefügten Wortlaut. Zweierlei ist neu: Das Satzzeichen wird
+  // *benannt* („Punkt“) statt gezeigt („.“), und es steht dabei selbst in Anführungszeichen, ist
+  // für den Zitat-Extraktor also ein Zitat wie jedes andere.
+  private static final Pattern SATZZEICHEN_AUFHEBUNG_MIT_ANFUEGUNG =
+      Pattern.compile(
+          "^(?:In )?(.+?) (?:wird|werden)(?: am (?:Text)?ende)?"
+              + "(?: nach (?:dem Wort|den (?:Wörtern|Worten)|der Angabe) "
+              + Z
+              + ")? das Satzzeichen "
+              + Z
+              + " aufgehoben und folgende[nrs]? (?:Wortlaut |Wörter )?angefügt: "
+              + Z
+              + "\\.?$");
+
   private static final Pattern PUNKT_DURCH_WORTLAUT =
       Pattern.compile(
           "^(?:In )?(.+?) (?:wird|werden) (der Punkt|das Komma|das Semikolon|der Strichpunkt)"
@@ -306,6 +332,16 @@
               + Z
               + "\\.?$");
 
+  // „Absatz 1 wird am Ende um Satz 2 ergänzt: „…““ (Brem.GBl. 2026 Nr. 87 Nr. 11 a) — dieselbe
+  // Anfügung in anderer Wortwahl: „um … ergänzt“ statt „… angefügt“, wobei die angefügte Einheit
+  // ihre Bezeichnung gleich mitführt.
+  private static final Pattern STRUKTUR_ANFUEGUNG_ERGAENZUNG =
+      Pattern.compile(
+          "^(?:Dem |Der |In )?(.+?) (?:wird|werden)(?: am Ende)? um (.+?) ergänzt ?: "
+              + ENUM
+              + Z
+              + "\\.?$");
+
   private static final Pattern STRUKTUR_ANFUEGUNG =
       Pattern.compile(
           "^(?:Es (?:wird|werden) )?(?:Der |Die |Das )?[Ff]olgende[nrs]? (.+?) (?:(?:wird|werden) )?angefügt ?: "
@@ -399,6 +435,21 @@
       Pattern.compile(
           "^(?:In )?(.+?) (?:wird|werden) (?:jeweils )?" + WOERTER + " " + Z + " gestrichen\\.$");
 
+  // „In Satz 2 werden nach dem Wort «1» die Worte «2» gestrichen.“ — Streichung mit Positionsanker.
+  // Wie bei ERSETZUNG_MIT_ANKER präzisiert der Anker allein die Fundstelle; die Eindeutigkeits-
+  // prüfung des Anwenders schützt vor Fehlgriffen.
+  private static final Pattern STREICHUNG_MIT_ANKER =
+      Pattern.compile(
+          "^(?:In )?(.+?) (?:wird|werden) (?:jeweils )?(?:nach|hinter|vor) "
+              + "(?:dem Wort|den (?:Wörtern|Worten)|der Angabe|der Zahl|der Verweisung"
+              + "|der Textstelle) "
+              + Z
+              + " "
+              + WOERTER
+              + " "
+              + Z
+              + " gestrichen\\.$");
+
   // „Die Angabe „X“ wird gestrichen.“ — ohne Stellenangabe (Kontext liefert das Ziel); tritt vor
   // allem als rechte Klausel eines Verbunds auf („… ersetzt und die Angabe „X“ wird gestrichen“).
   private static final Pattern STREICHUNG_OHNE_STELLE =
@@ -1125,6 +1176,16 @@
           m.group(1), s -> new WoerterEinfuegung(kontext.plus(s), anker, woerter, provenienz));
     }
 
+    if ((m = SATZZEICHEN_AUFHEBUNG_MIT_ANFUEGUNG.matcher(text)).matches()) {
+      var zeichen = benanntesSatzzeichen(wortZitat(zitate, m.group(3)));
+      if (zeichen == null) {
+        return Optional.empty();
+      }
+      var neu = wortZitat(zitate, m.group(4));
+      return ausStellen(
+          m.group(1), s -> new Ersetzung(kontext.plus(s), zeichen, neu, false, true, provenienz));
+    }
+
     if ((m = PUNKT_DURCH_WORTLAUT.matcher(text)).matches()) {
       var alt = satzzeichen(m.group(2));
       var neu = wortZitat(zitate, m.group(3));
@@ -1177,7 +1238,7 @@
     if ((m = WOERTER_EINFUEGUNG.matcher(text)).matches()) {
       var ankerWoerter = wortZitat(zitate, m.group(3));
       var anker =
-          m.group(2).equals("nach")
+          nachAnker(m.group(2))
               ? new WortAnker.NachWoertern(ankerWoerter)
               : new WortAnker.VorWoertern(ankerWoerter);
       var woerter = wortZitat(zitate, m.group(4));
@@ -1197,7 +1258,7 @@
     if ((m = KOMMA_EINFUEGUNG.matcher(text)).matches()) {
       var ankerWoerter = wortZitat(zitate, m.group(3));
       var anker =
-          m.group(2).equals("nach")
+          nachAnker(m.group(2))
               ? new WortAnker.NachWoertern(ankerWoerter)
               : new WortAnker.VorWoertern(ankerWoerter);
       var woerter = satzzeichen(m.group(4));
@@ -1208,7 +1269,7 @@
     if ((m = KOMMA_UND_WOERTER_EINFUEGUNG.matcher(text)).matches()) {
       var ankerWoerter = wortZitat(zitate, m.group(3));
       var anker =
-          m.group(2).equals("nach")
+          nachAnker(m.group(2))
               ? new WortAnker.NachWoertern(ankerWoerter)
               : new WortAnker.VorWoertern(ankerWoerter);
       var woerter = ", " + wortZitat(zitate, m.group(4));
@@ -1426,6 +1487,26 @@
               provenienz));
     }
 
+    if ((m = STRUKTUR_ANFUEGUNG_ERGAENZUNG.matcher(text)).matches()) {
+      var stelle = StellenParser.parse(m.group(1));
+      var ebeneBez = ebeneUndBezeichnung(m.group(2));
+      if (stelle.isEmpty() || ebeneBez.isEmpty()) {
+        return Optional.empty();
+      }
+      var textInhalt =
+          mitEnumerator(
+              m.group(3),
+              labelFuer(ebeneBez.get().ebene(), ebeneBez.get().bezeichnung()),
+              zitat(zitate, m.group(4)));
+      return Optional.of(
+          new Anfuegung(
+              kontext.plus(stelle.get()),
+              ebeneBez.get().ebene(),
+              ebeneBez.get().bezeichnung(),
+              textInhalt,
+              provenienz));
+    }
+
     if ((m = STRUKTUR_ANFUEGUNG.matcher(text)).matches()) {
       var ebeneBez = ebeneUndBezeichnung(m.group(1));
       if (ebeneBez.isEmpty()) {
@@ -1479,6 +1560,11 @@
       return Optional.of(new Aufhebung(kontext.plus(stelle), provenienz));
     }
 
+    if ((m = STREICHUNG_MIT_ANKER.matcher(text)).matches()) {
+      var woerter = wortZitat(zitate, m.group(3));
+      return ausStellen(m.group(1), s -> new Streichung(kontext.plus(s), woerter, provenienz));
+    }
+
     if ((m = STREICHUNG.matcher(text)).matches()) {
       var woerter = wortZitat(zitate, m.group(2));
       return ausStellen(m.group(1), s -> new Streichung(kontext.plus(s), woerter, provenienz));
@@ -1626,7 +1712,7 @@
       }
       var ankerWoerter = wortZitat(zitate, pm.group(2));
       var anker =
-          pm.group(1).equals("nach")
+          nachAnker(pm.group(1))
               ? (WortAnker) new WortAnker.NachWoertern(ankerWoerter)
               : new WortAnker.VorWoertern(ankerWoerter);
       String woerter;
@@ -2386,6 +2472,30 @@
 
   private static final Pattern AM_ENDE = Pattern.compile("\\bam Ende\\b");
 
+  /**
+   * Das benannte Satzzeichen („Punkt“, „Komma“) als Zeichen; {@code null}, wenn das Wort keines
+   * benennt. Anders als {@link #satzzeichen} steht der Name hier ohne Artikel und stammt aus einem
+   * Zitat des Änderungsgesetzes.
+   */
+  /**
+   * Ob das Richtungswort einer Einfügung hinter den Anker weist. „hinter“ ist die Nebenform von
+   * „nach“ (Hamburg, Bremen); wurde sie nur im Muster zugelassen, nicht aber hier geprüft, so fiel
+   * sie stillschweigend in den Vor-Zweig und die Wörter traten vor den Anker.
+   */
+  private static boolean nachAnker(String richtung) {
+    return richtung.equalsIgnoreCase("nach") || richtung.equalsIgnoreCase("hinter");
+  }
+
+  private static @Nullable String benanntesSatzzeichen(String wort) {
+    return switch (wort.strip()) {
+      case "Punkt" -> ".";
+      case "Komma" -> ",";
+      case "Semikolon", "Strichpunkt" -> ";";
+      case "Doppelpunkt" -> ":";
+      default -> null;
+    };
+  }
+
   private static String satzzeichen(String phrase) {
     // Am Satzanfang steht dieselbe Phrase großgeschrieben („Der Punkt am Ende wird …“).
     return switch (Character.toLowerCase(phrase.charAt(0)) + phrase.substring(1)) {
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java
index 466adfe..f6e7360 100644
--- a/src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java
+++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java
@@ -42,6 +42,18 @@
           "bisherige",
           "bisherigen");
 
+  // „Der Name der Verordnung wird wie folgt gefasst“ (Brem.GBl. 2026 Nr. 87 Nr. 1): Gemeint ist
+  // die Überschrift des Werkes selbst. Der Anwender erkennt sie daran, dass die Stelle nichts
+  // weiter nennt, und setzt den Langtitel.
+  private static final Pattern NAME_DES_WERKES =
+      Pattern.compile(
+          "(?:Der Name|Die Bezeichnung|Die Überschrift) (?:des Gesetzes|der Verordnung)");
+
+  /** Bezeichnung des der Stellung nach benannten letzten Satzes („Im letzten Satz …“). */
+  public static final String LETZTER_SATZ = "letzter";
+
+  private static final Set<String> SATZ_WOERTER = Set.of("Satz", "Satzes", "Sätze", "Sätzen");
+
   private static final Pattern PARAGRAPH = Pattern.compile("§");
   // Gestufte Nummern („Nr. 1.29“) kommen in Listen vor, die ihre Glieder dezimal durchzählen —
   // etwa der Artenkatalog des BayJG. Der Punkt muss von einer Ziffer gefolgt sein, damit „Nummer
@@ -49,6 +61,12 @@
   private static final Pattern NUMMER_WERT = Pattern.compile("\\d+(?:\\.\\d+)*[a-z]?");
   private static final Pattern BUCHSTABE_WERT = Pattern.compile("[a-z]{1,3}");
 
+  // Die bloße Aufzählungsmarke als ganze Stellenangabe: „In e) wird das Wort … ersetzt“, „f) wird
+  // gestrichen“ (Brem.GBl. 2026 Nr. 87 Nr. 4 c und d). Sie gilt nur, wenn sie die *ganze* Angabe
+  // ausmacht — innerhalb einer längeren Angabe bliebe offen, worauf sie sich bezöge.
+  private static final Pattern BLOSSE_BUCHSTABENMARKE = Pattern.compile("([a-z]{1,3})\\)");
+  private static final Pattern BLOSSE_NUMMERNMARKE = Pattern.compile("(\\d+[a-z]?)\\.");
+
   private StellenParser() {}
 
   // „in dem Satzteil vor Nummer 1“, „in der Angabe vor Nummer 1“, bayerisch auch „Satzteil nach
@@ -79,6 +97,13 @@
 
   public static Optional<Stelle> parse(String phrase) {
     phrase = CHAPEAU_QUALIFIER.matcher(phrase).replaceAll(" ").strip();
+    if (NAME_DES_WERKES.matcher(phrase).matches()) {
+      return Optional.of(new Stelle(List.of(new Stelle.Ueberschrift())));
+    }
+    var marke = blosseMarke(phrase.strip());
+    if (marke != null) {
+      return Optional.of(new Stelle(List.of(marke)));
+    }
     var woerter = phrase.strip().split("\\s+");
     var komponenten = new ArrayList<Stelle.Komponente>();
 
@@ -130,7 +155,7 @@
           i++;
         }
         case "Nummer", "Nr.", "Nummern", "Nrn." -> {
-          var wert = naechstesWort(woerter, i);
+          var wert = wertOhneAufzaehlungspunkt(woerter, i);
           if (wert == null || !NUMMER_WERT.matcher(wert).matches()) {
             return Optional.empty();
           }
@@ -193,6 +218,17 @@
         case "Anhang" -> komponenten.add(new Stelle.Gliederungseinheit("Anhang", ""));
         case "Inhaltsübersicht" -> komponenten.add(new Stelle.Inhaltsuebersicht());
         case "Überschrift" -> komponenten.add(new Stelle.Ueberschrift());
+        case "letzte", "letzten", "letzter", "letztem", "letztes" -> {
+          // „Im letzten Satz werden …“ (Brem.GBl. 2026 Nr. 87 Nr. 15 f): der Satz ist nicht
+          // gezählt, sondern der Stellung nach bezeichnet. Die Auflösung nimmt dafür den letzten
+          // Satz des Bereichs, den die übrigen Glieder übriglassen.
+          var art = naechstesWort(woerter, i);
+          if (art == null || !SATZ_WOERTER.contains(art)) {
+            return Optional.empty();
+          }
+          komponenten.add(new Stelle.SatzNr(LETZTER_SATZ));
+          i++;
+        }
         default -> {
           // Ordinal vor der Gliederungsart: „zum zweiten Abschnitt“, „des 2. Abschnitts“.
           var ordinal = ordinalZahl(wort);
@@ -550,6 +586,33 @@
     };
   }
 
+  /**
+   * Die Stellenangabe, die nur aus einer Aufzählungsmarke besteht („e)“, „3.“), als Komponente;
+   * sonst {@code null}.
+   */
+  private static Stelle.@Nullable Komponente blosseMarke(String phrase) {
+    if (BLOSSE_BUCHSTABENMARKE.matcher(phrase).matches()) {
+      return new Stelle.BuchstabeNr(phrase.substring(0, phrase.length() - 1));
+    }
+    if (BLOSSE_NUMMERNMARKE.matcher(phrase).matches()) {
+      return new Stelle.NummerNr(phrase.substring(0, phrase.length() - 1));
+    }
+    return null;
+  }
+
+  /**
+   * Der Wert hinter „Nummer“/„Buchstabe“, wobei ein Aufzählungspunkt am Ende der ganzen Angabe
+   * abgestreift wird: Das bremische Gesetzblatt schreibt „Nummer 1. wird wie folgt gefasst“ und
+   * meint die Nummer 1, nicht eine gestufte Nummer.
+   */
+  private static @Nullable String wertOhneAufzaehlungspunkt(String[] woerter, int i) {
+    var wert = naechstesWort(woerter, i);
+    if (wert != null && wert.endsWith(".") && i + 2 >= woerter.length) {
+      wert = wert.substring(0, wert.length() - 1);
+    }
+    return wert;
+  }
+
   private static String naechstesWort(String[] woerter, int i) {
     return i + 1 < woerter.length ? entfernePunktuation(woerter[i + 1]) : null;
   }
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
index 073abfa..e5021a0 100644
--- a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
+++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
@@ -313,6 +313,15 @@
           "[ \\t]*Gesetz- und Verordnungsblatt für das Land Rheinland-Pfalz[ \\t\\n]*-[ \\t\\n]*"
               + "Nr\\.\\s*\\d+ vom \\d{1,2}\\. \\p{L}+ \\d{4}[ \\t]*");
 
+  // Brem.GBl.: Der Kolumnentitel („Nr. 87 Gesetzblatt der Freien Hansestadt Bremen vom
+  // 20. August 2026 574“) steht meist auf eigener Zeile, klebt aber am Seitenumbruch mitunter
+  // hinter dem letzten Satz der Vorseite. Deshalb herausschneiden statt als Kolumnentitel zu
+  // entfernen — sonst zerfällt die Gliederung des Heftes an ihm.
+  private static final Pattern GBL_HB_KOPF =
+      Pattern.compile(
+          "[ \\t]*Nr\\. \\d+ Gesetzblatt der Freien Hansestadt Bremen"
+              + " vom \\d{1,2}\\. \\p{L}+ \\d{4}[ \\t]*\\d{0,4}[ \\t]*");
+
   // Die Blattzählung des GBl. BW („Seite 2 von 7“) steht im Inhaltsstrom mitunter für sich allein,
   // getrennt vom übrigen Seitenfuß, und zwar zwischen zwei Gliederungspunkten — sie hinge sonst dem
   // vorangehenden Befehl an und machte ihn unkenntlich.
@@ -368,6 +377,7 @@
     text = GVBL_HH_KOPF.matcher(text).replaceAll("\n");
     text = GBL_BW_FUSS.matcher(text).replaceAll("\n");
     text = GVBL_RP_FUSS.matcher(text).replaceAll("\n");
+    text = GBL_HB_KOPF.matcher(text).replaceAll("\n");
     var zeilen = entferneKolumnentitel(zerlegeInZeilen(text));
     var verbunden = verbindeUmbrueche(zeilen);
     // Falsch-positive markerlose Zusammenzüge („durch“ + „die“ → „durchdie“) reparieren — die
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/ZitatExtraktor.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/ZitatExtraktor.java
index a7fb050..cfac715 100644
--- a/src/main/java/eu/mulk/aendggner/aenderung/parse/ZitatExtraktor.java
+++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/ZitatExtraktor.java
@@ -244,8 +244,13 @@
    *   <li>Der Marker der Folgezeile liegt auf derselben oder einer flacheren Ebene als der Marker,
    *       auf dessen Punkt das Zitat aufging („bb)“ → „cc)“, „c)“, „3.“).
    *   <li>Der Zeilenrest trägt Befehlssprache.
-   *   <li>Ein Schluss an dieser Stelle lässt den Rest des Abschnitts ausbalanciert zurück — die
-   *       Stelle behebt den Defekt also wirklich.
+   *   <li>Im Rest des Abschnitts steht kein schließendes Anführungszeichen ohne öffnendes. Das ist
+   *       die Probe darauf, dass hier wirklich ein Zitat endet und nicht mitten in einem gültigen
+   *       Zitat abgeschnitten wird: Wer mitten in einem ordentlich geschlossenen Zitat schnitte,
+   *       ließe dessen schließendes Zeichen ohne Gegenstück zurück. Ein Rest, der seinerseits ein
+   *       Zitat offen lässt, steht dem nicht entgegen — ein Abschnitt darf mehrere solcher
+   *       Satzfehler tragen (Brem.GBl. 2026 Nr. 87 trägt zwei), und jeder wird an seiner eigenen
+   *       Grenze geschlossen.
    * </ol>
    */
   private static @Nullable String aufzaehlungsGrenze(
@@ -260,7 +265,7 @@
     var marker = zeile.group(1);
     if (markerEbene(marker) > markerEbene(markerVorZitat)
         || !BEFEHLSSPRACHE.matcher(zeile.group(2)).find()
-        || offeneZitate(text, von, segment.bis()) != 0) {
+        || schlussOhneOeffnung(text, von, segment.bis())) {
       return null;
     }
     return marker;
@@ -324,6 +329,29 @@
     return tiefe;
   }
 
+  /**
+   * Ob in {@code [von, bis)} ein schließendes Anführungszeichen ohne öffnendes steht — dieselbe
+   * Tiefenzählung wie {@link #offeneZitate}, nur auf die Gegenrichtung gesehen.
+   */
+  private static boolean schlussOhneOeffnung(String text, int von, int bis) {
+    int tiefe = 0;
+    for (int i = von; i < bis; i++) {
+      char c = text.charAt(i);
+      if (c == OEFFNEND) {
+        if (tiefe > 0 && istFortfuehrungszeichen(text, i)) {
+          continue;
+        }
+        tiefe++;
+      } else if (c == SCHLIESSEND) {
+        if (tiefe == 0) {
+          return true;
+        }
+        tiefe--;
+      }
+    }
+    return false;
+  }
+
   /** Die bei {@code von} beginnende Zeile (ohne Zeilenumbruch). */
   private static String zeileAb(String text, int von) {
     int ende = text.indexOf('\n', von);
diff --git a/src/main/java/eu/mulk/aendggner/anwendung/BefehlAnwender.java b/src/main/java/eu/mulk/aendggner/anwendung/BefehlAnwender.java
index 92cd569..eb69423 100644
--- a/src/main/java/eu/mulk/aendggner/anwendung/BefehlAnwender.java
+++ b/src/main/java/eu/mulk/aendggner/anwendung/BefehlAnwender.java
@@ -1390,16 +1390,84 @@
           (text, bereich) ->
               TextErgebnis.ok(
                   text.substring(0, bereich.von())
-                      + rueckeZitatEin(
-                          normalisiereZitatText(befehl.neuerText()),
-                          einrueckungVon(text, bereich.von()))
+                      + behalteUntergliederung(
+                          text.substring(bereich.von(), bereich.bis()),
+                          rueckeZitatEin(
+                              normalisiereZitatText(befehl.neuerText()),
+                              einrueckungVon(text, bereich.von())))
                       + text.substring(bereich.bis())));
     }
 
     // Neufassung eines Satzes / Halbsatzes: Bereich ersetzen. Eine Einrückung gibt es hier
     // nicht — der Bereich beginnt mitten in der Zeile.
-    return bearbeiteText(
-        normen, befehl, text -> TextErgebnis.ok(normalisiereZitatText(befehl.neuerText())));
+    return bearbeiteText(normen, befehl, text -> TextErgebnis.ok(neuerSatzWortlaut(befehl, text)));
+  }
+
+  /** Ob die Stelle den ersten Satz ihrer Einheit bezeichnet. */
+  private static boolean istErsterSatz(Stelle stelle) {
+    return stelle.komponenten().stream()
+        .anyMatch(k -> k instanceof Stelle.SatzNr s && s.nummer().equals("1"));
+  }
+
+  /** Eine Aufzählungszeile innerhalb eines Absatzes („1. …“, „b) …“), auch eingerückt. */
+  private static final Pattern EINGERUECKTE_AUFZAEHLUNGSZEILE =
+      Pattern.compile("(?m)^[ \\t]*(?:\\d+[a-z]?\\.|[a-z]{1,3}\\))\\s");
+
+  /**
+   * Der Wortlaut, der an die Stelle eines neugefassten Satzes tritt. Das Zitat des ersten Satzes
+   * trägt die Absatzbezeichnung mit („Satz 1 wird wie folgt gefasst: „(2) Mit Genehmigung …““). Sie
+   * gehört dem Absatz, nicht dem Satz; bliebe sie stehen, so führte der Absatz seine Nummer
+   * zweimal.
+   */
+  private static String neuerSatzWortlaut(Neufassung befehl, String alterSatz) {
+    var neu = normalisiereZitatText(befehl.neuerText());
+    if (istErsterSatz(befehl.stelle())) {
+      neu = neu.replaceFirst("^\\(\\d+[a-z]?\\)\\s+", "");
+    }
+    // Ein Satz steht im kanonischen Klartext auf einer Zeile. Die Umbrüche, die das Zitat aus dem
+    // Gesetzblattsatz mitbringt, sind Satzspiegel und kein Textbestand — anders als bei der
+    // Neufassung eines ganzen Absatzes, deren Aufzählungszeilen ihre Zeilen behalten müssen.
+    if (untergliederungsBeginn(neu) < 0) {
+      neu = neu.replaceAll("\\s*\\n\\s*", " ");
+    }
+    return behalteUntergliederung(alterSatz, neu);
+  }
+
+  /**
+   * Eine Neufassung, die unvollendet endet — auf Doppelpunkt oder Komma —, meint den Vordersatz
+   * allein und lässt die Untergliederung stehen, die ihm folgt. Das ist die Lesart des amtlichen
+   * Satzes: Wer die Glieder mitändern will, führt sie im Zitat mit auf, und wer sie einzeln ändert,
+   * tut es in den folgenden Punkten.
+   *
+   * <p>Brem.GBl. 2026 Nr. 87 Nr. 4 führt beides vor: a) fasst den Vordersatz des § 3 Abs. 2 neu („…
+   * eingerichtet werden:“), b) und e) je eine Nummer („1. Bildungsgänge …,“), und c) und d) greifen
+   * danach auf die Buchstaben e und f zu, die unter der Nummer 1 hängen. Ohne diese Regel nähme
+   * jede der Neufassungen ihrer Einheit die Glieder, und die folgenden Befehle fänden ihr Ziel
+   * nicht mehr.
+   */
+  private static String behalteUntergliederung(String alterBlock, String neuerText) {
+    var kern = neuerText.stripTrailing();
+    if (!kern.endsWith(":") && !kern.endsWith(",")) {
+      return neuerText;
+    }
+    if (untergliederungsBeginn(neuerText) >= 0) {
+      return neuerText; // der neue Wortlaut bringt seine Glieder selbst mit
+    }
+    int beginn = untergliederungsBeginn(alterBlock);
+    return beginn < 0 ? neuerText : kern + alterBlock.substring(beginn);
+  }
+
+  /**
+   * Die Stelle des Zeilenumbruchs, mit dem die Untergliederung eines Blockes beginnt — also des
+   * ersten Umbruchs, dem eine Aufzählungszeile folgt; sonst {@code -1}.
+   */
+  private static int untergliederungsBeginn(String block) {
+    int umbruch = block.indexOf('\n');
+    if (umbruch < 0) {
+      return -1;
+    }
+    var aufzaehlung = EINGERUECKTE_AUFZAEHLUNGSZEILE.matcher(block.substring(umbruch));
+    return aufzaehlung.find() && aufzaehlung.start() == 1 ? umbruch : -1;
   }
 
   /** Ein Ziel (Absatz, Satz, Nummer, Buchstabe) wird durch einen Block ersetzt (ggf. 1 → N). */
@@ -1892,6 +1960,26 @@
     return gestutzt + "\n" + einrueckung + satz;
   }
 
+  /**
+   * Setzt den angefügten Satz an seinen Platz. Nennt der Befehl die Nummer des neuen Satzes und
+   * zählt der Zieltext schon so viele Sätze, so ist der genannte Platz gemeint und nicht das Ende:
+   * „Absatz 1 wird am Ende um Satz 2 ergänzt“ macht den neuen Satz zum zweiten und schiebt den
+   * bisherigen zweiten nach hinten (Brem.GBl. 2026 Nr. 87 Nr. 11 a; so führt es auch die amtliche
+   * Nachfassung). Reicht die Zählung nicht so weit, so ist das Ende gemeint — dort fallen beide
+   * Lesarten ohnehin zusammen.
+   */
+  private static String setzeSatzEin(String text, String satz, @Nullable String bezeichnung) {
+    if (bezeichnung != null && bezeichnung.matches("\\d+")) {
+      int nummer = Integer.parseInt(bezeichnung);
+      var saetze = SatzTeiler.teile(text);
+      if (nummer >= 1 && nummer <= saetze.size()) {
+        int von = saetze.get(nummer - 1).von();
+        return (text.substring(0, von) + satz + " " + text.substring(von)).stripTrailing();
+      }
+    }
+    return haengeSatzAn(text, satz);
+  }
+
   private static AngewandteAenderung wendeAnfuegungAn(List<Norm> normen, Anfuegung befehl) {
     return switch (befehl.ebene()) {
       case ABSATZ -> {
@@ -1907,7 +1995,10 @@
       }
       case SATZ ->
           bearbeiteText(
-              normen, befehl, text -> TextErgebnis.ok(haengeSatzAn(text, befehl.text().strip())));
+              normen,
+              befehl,
+              text ->
+                  TextErgebnis.ok(setzeSatzEin(text, befehl.text().strip(), befehl.bezeichnung())));
       // Ein Halbsatz beginnt keinen neuen Satz, sondern setzt den bestehenden hinter dem
       // Strichpunkt fort. Angehängt wird deshalb wie beim Satz — aber nur, wenn der Zieltext
       // tatsächlich auf einen Strichpunkt endet: Sonst stünde der Halbsatz hinter einem Punkt und
@@ -2067,8 +2158,8 @@
         befehl,
         (text, bereich) -> {
           var label = labelVon(stelle);
-          if (label != null && haeltPlatz(text, bereich.bis(), label)) {
-            var einrueckung = einrueckungVon(text, bereich.von());
+          var einrueckung = einrueckungVon(text, bereich.von());
+          if (label != null && haeltPlatz(text, bereich.bis(), label, einrueckung.length())) {
             return TextErgebnis.ok(
                 text.substring(0, bereich.von())
                     + einrueckung
@@ -2855,17 +2946,40 @@
    * weitere Platzhalter folgen —, so ist kein Platz zu halten und sie entfällt ganz. So endet § 14
    * der hessischen Verkehrsrechts-Zuständigkeitsverordnung nach Aufhebung der Nrn. 9 bis 11 mit der
    * Nr. 6, wie es auch die amtliche Nachfassung tut.
+   *
+   * <p>Gesucht wird dabei nur innerhalb desselben Blockes: Die Aufzählung endet dort, wo eine Zeile
+   * flacher einrückt als die aufgehobene Einheit, denn dann beginnt die Untergliederung einer
+   * anderen Einheit. Ohne diese Schranke hielte der letzte Buchstabe der Nummer 1 einen Platz für
+   * die Buchstaben der Nummer 2 — die ihn nie brauchen (Brem.GBl. 2026 Nr. 87 Nr. 4 d).
    */
-  private static boolean haeltPlatz(String text, int ab, String label) {
+  private static boolean haeltPlatz(String text, int ab, String label, int einrueckung) {
     var art =
         label.endsWith(")")
-            ? Pattern.compile("^\\s*[a-zA-Z]{1,2}\\)\\s+(.*)$")
-            : Pattern.compile("^\\s*\\d+[a-z]?\\.\\s+(.*)$");
-    return text.substring(ab)
-        .lines()
-        .map(art::matcher)
-        .filter(java.util.regex.Matcher::matches)
-        .anyMatch(m -> !m.group(1).strip().equals("(weggefallen)"));
+            ? Pattern.compile("^(\\s*)[a-zA-Z]{1,2}\\)\\s+(.*)$")
+            : Pattern.compile("^(\\s*)\\d+[a-z]?\\.\\s+(.*)$");
+    for (var zeile : text.substring(ab).lines().toList()) {
+      if (zeile.isBlank()) {
+        continue;
+      }
+      if (fuehrendeBreite(zeile) < einrueckung) {
+        return false;
+      }
+      var m = art.matcher(zeile);
+      if (m.matches()
+          && m.group(1).length() == einrueckung
+          && !m.group(2).strip().equals("(weggefallen)")) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  private static int fuehrendeBreite(String zeile) {
+    int i = 0;
+    while (i < zeile.length() && (zeile.charAt(i) == ' ' || zeile.charAt(i) == '\t')) {
+      i++;
+    }
+    return i;
   }
 
   private static String einrueckungVon(String text, int position) {
@@ -3135,6 +3249,27 @@
   private static final Pattern MARKEN_ZWISCHENRAUM =
       Pattern.compile("^(\\d+[a-z]?\\.|[a-z]{1,3}\\))[ \\t]+");
 
+  /**
+   * Ob die Zeile den Satz der zuletzt geschriebenen Zeile offenkundig fortsetzt. Maßstab ist allein
+   * das Ende der vorigen Zeile: Wer auf ein Binde- oder Verhältniswort endet, ist nicht zu Ende
+   * ({@link #UNVOLLENDET}). Die bloße Kleinschreibung der Folgezeile genügt nicht — im Anhang zu §
+   * 3 Abs. 3 UWG folgt der Kurzüberschrift eines Aufzählungsgliedes regelmäßig eine
+   * kleingeschriebene Begriffsbestimmung („2. unerlaubte Verwendung von Gütezeichen“ / „die
+   * Verwendung von Gütezeichen …“), und die sind zwei Zeilen und nicht eine.
+   */
+  private static boolean setztSatzFort(StringBuilder bisher, String zeile) {
+    if (zeile.isEmpty() || bisher.length() == 0) {
+      return false;
+    }
+    int zeilenAnfang = bisher.lastIndexOf("\n") + 1;
+    var vorige = bisher.substring(zeilenAnfang).stripTrailing();
+    if (!UNVOLLENDET.matcher(vorige).find()) {
+      return false;
+    }
+    int erstes = zeile.codePointAt(0);
+    return Character.isLowerCase(erstes) || Character.isDigit(erstes);
+  }
+
   private static String normalisiereZitatText(String text) {
     var zeilen = text.split("\n");
     var sb = new StringBuilder();
@@ -3157,6 +3292,13 @@
         // Aufzählungspunkt: eigene Zeile mit Einzug.
         sb.append("\n  ").append(gestutzt);
         fortsetzungsEinzug = "    ";
+      } else if (setztSatzFort(sb, gestutzt)) {
+        // Ein Umbruch mitten im Satz ist Satzspiegel, kein Textbestand: Das Gesetzblatt bricht die
+        // Zeile, wo die Spalte endet, und der geometrische Befund kann sie als hart ausweisen
+        // (kurze Schlusszeile eines eingerückten Zitats). Zusammengezogen wird nur dort, wo die
+        // Fortsetzung unverkennbar ist — die vorige Zeile schließt keinen Satz, und diese beginnt
+        // klein oder mit einer Ziffer.
+        sb.append(' ').append(gestutzt);
       } else {
         sb.append('\n').append(fortsetzungsEinzug).append(gestutzt);
       }
diff --git a/src/main/java/eu/mulk/aendggner/anwendung/StellenAufloeser.java b/src/main/java/eu/mulk/aendggner/anwendung/StellenAufloeser.java
index 22ce4c6..32d9c8b 100644
--- a/src/main/java/eu/mulk/aendggner/anwendung/StellenAufloeser.java
+++ b/src/main/java/eu/mulk/aendggner/anwendung/StellenAufloeser.java
@@ -3,6 +3,7 @@
 package eu.mulk.aendggner.anwendung;
 
 import eu.mulk.aendggner.aenderung.Stelle;
+import eu.mulk.aendggner.aenderung.parse.StellenParser;
 import eu.mulk.aendggner.gesetz.Gesetz;
 import eu.mulk.aendggner.gesetz.Norm;
 import java.util.List;
@@ -220,8 +221,18 @@
    */
   private static SatzTeiler.@Nullable SatzBereich satzBereichIn(
       String text, SatzTeiler.SatzBereich rahmen, Stelle.SatzNr satz) {
-    int nummer = Integer.parseInt(satz.nummer().replaceAll("[a-z]$", ""));
     var ausschnitt = text.substring(rahmen.von(), rahmen.bis());
+    // Der Stellung nach benannter Satz („Im letzten Satz …“): Gezählt wird erst hier, weil die
+    // Zahl der Sätze erst am Text feststeht.
+    if (StellenParser.LETZTER_SATZ.equals(satz.nummer())) {
+      var saetze = SatzTeiler.teile(ausschnitt);
+      if (saetze.isEmpty()) {
+        return null;
+      }
+      var letzter = saetze.get(saetze.size() - 1);
+      return new SatzTeiler.SatzBereich(rahmen.von() + letzter.von(), rahmen.von() + letzter.bis());
+    }
+    int nummer = Integer.parseInt(satz.nummer().replaceAll("[a-z]$", ""));
     var innen = satzBereich(ausschnitt, nummer, SatzTeiler.teile(ausschnitt));
     return innen == null
         ? null
diff --git a/src/test/java/eu/mulk/aendggner/EndToEndTest.java b/src/test/java/eu/mulk/aendggner/EndToEndTest.java
index bb67978..6bb82eb 100644
--- a/src/test/java/eu/mulk/aendggner/EndToEndTest.java
+++ b/src/test/java/eu/mulk/aendggner/EndToEndTest.java
@@ -1778,6 +1778,79 @@
         .containsExactly("§ 3", "§ 4", "§ 6", "§ 9");
   }
 
+  /**
+   * Bremen: Die Änderung der Verordnung über die Berufsfachschule für technische und kaufmännische
+   * Assistentinnen und Assistenten (Brem.GBl. 2026 Nr. 87, S. 573).
+   *
+   * <p>Der Fall ist der erste, dessen Vor- <em>und</em> Nachfassung aus demselben offenen Portal
+   * stammen (siehe {@code Bremen/SOURCES}); er bringt sechs Idiome, die das übrige Landesrecht
+   * nicht führt: die Neufassung des <em>Namens</em> der Verordnung, die bloße Aufzählungsmarke als
+   * Stellenangabe („In e) …“, „f) wird gestrichen“), die Marke mit Schlusspunkt („Nummer 1. wird
+   * wie folgt gefasst“), „durch die Worte … <em>geändert</em>“ statt „ersetzt“, die Anfügung als
+   * „am Ende um Satz 2 ergänzt“ und das <em>benannte</em> Satzzeichen („das Satzzeichen „Punkt“
+   * wird aufgehoben und folgendes angefügt“).
+   *
+   * <p>Zwei Zitate des Heftes sind nicht geschlossen (Nummern 8 a und 13). Beide Satzfehler
+   * zusammen sind der Prüfstein der Aufzählungs-Zitatgrenze: Sie muss auch dann greifen, wenn der
+   * Rest des Abschnitts seinerseits noch ein Zitat offen lässt.
+   */
+  @Test
+  void berufsfachschulVOBremen() throws Exception {
+    var alt = SAMPLEDATA.resolve("Bremen/AssBerFSchulV-BR-alt.txt");
+    var pdf = SAMPLEDATA.resolve("Bremen/BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf");
+    var neu = SAMPLEDATA.resolve("Bremen/AssBerFSchulV-BR-neu.txt");
+    assumeTrue(Files.exists(alt) && Files.exists(pdf), "Bremer Beispieldaten fehlen");
+
+    var gesetz = new eu.mulk.aendggner.gesetz.land.LandesRechtLoader().load(alt);
+    assertThat(gesetz.jurabk()).isEqualTo("AssBerFSchulV BR 2019");
+    assertThat(gesetz.normen()).hasSize(28);
+
+    var text = TextBereiniger.bereinige(new PatchTextExtraktor().extrahiere(pdf));
+    // Der Kolumnentitel steht im Inhaltsstrom und klebt am Seitenumbruch hinter dem letzten Satz
+    // der Vorseite; bliebe er stehen, zerfiele die Gliederung des Heftes an ihm.
+    assertThat(text).doesNotContain("Gesetzblatt der Freien Hansestadt Bremen vom 20. August 2026");
+
+    var parseErgebnis = new AenderungsgesetzParser().parse(text, gesetz, null);
+    assertThat(parseErgebnis.artikel()).containsExactly("1");
+    assertThat(parseErgebnis.befehle()).hasSize(41);
+
+    // Beide offenen Zitate werden am folgenden Aufzählungspunkt geschlossen — das erste vor
+    // „b)“, das zweite vor „14.“. Vor dieser Welle schloss nur das letzte, und die Nummern 9 bis
+    // 13 verschwanden im Zitat der Nummer 8 a).
+    assertThat(parseErgebnis.warnungen())
+        .anyMatch(w -> w.contains("vor dem Aufzählungspunkt „b)“"))
+        .anyMatch(w -> w.contains("vor dem Aufzählungspunkt „14.“"));
+
+    var anwendung = BefehlAnwender.anwenden(gesetz, parseErgebnis.befehle());
+    assertThat(anwendung.anzahlAngewandt()).isEqualTo(37);
+
+    // Die Neufassung eines Vordersatzes lässt die Aufzählung stehen, die ihm folgt — und der
+    // gestrichene letzte Buchstabe der Nummer 1 hält keinen Platz für die Buchstaben der Nummer 2.
+    var dritter = anwendung.neu().norm("§ 3").orElseThrow().absaetze().get(1).text();
+    assertThat(dritter)
+        .startsWith("Mit Genehmigung der Senatorin oder des Senators für Kinder und Bildung")
+        .contains("Künstliche Intelligenz und Wirtschaftsinformatik")
+        .doesNotContain("(weggefallen)");
+
+    // „hinter dem Wort“ setzt die Wörter dahinter, nicht davor.
+    assertThat(anwendung.neu().norm("§ 23").orElseThrow().absaetze().get(0).text())
+        .contains("Die Senatorin oder der Senator für Kinder und Bildung kann auf Antrag");
+
+    assumeTrue(Files.exists(neu), "Bremer Nachfassung fehlt");
+    var soll = new eu.mulk.aendggner.gesetz.land.LandesRechtLoader().load(neu);
+    var abgleich = Nachfassungsabgleich.vergleiche(soll, anwendung.neu());
+    // § 26 fehlt, weil die Nummer 18 des Heftes ihr Zitat gar nicht erst öffnet: Sie verbindet
+    // eine Umnummerierung mit einer Neufassung, deren Wortlaut ohne Anführungszeichen dasteht.
+    // Geraten wird nicht.
+    assertThat(abgleich.fehlende()).containsExactly("§ 26");
+    assertThat(abgleich.ueberzaehlige()).isEmpty();
+    // § 22: „Im letzten Satz“ nennt keinen Absatz, und die Norm hat deren drei — der Befehl bleibt
+    // zu Recht mehrdeutig. § 29: die Nummer 21 verteilt den neuen Wortlaut auf zwei Unterpunkte,
+    // die je nur aus einem Zitat bestehen.
+    assertThat(abgleich.abweichungen().stream().map(a -> a.enbez()).toList())
+        .containsExactly("§ 22", "§ 29");
+  }
+
   private static Aenderungsbefehl befehlZu(
       AenderungsgesetzParser.ParseErgebnis ergebnis, String gliederungsPfad) {
     return ergebnis.befehle().stream()
diff --git a/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-alt.txt b/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-alt.txt
new file mode 100644
index 0000000..ab1ab34
--- /dev/null
+++ b/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-alt.txt
@@ -0,0 +1,179 @@
+Verordnung über die Berufsfachschule für Assistentinnen und Assistenten
+(AssBerFSchulV BR 2019)
+Vom 24. April 2019
+(Brem.GBl. 2019, S. 297)
+Teil 1  Ausbildung
+§ 1  Aufgaben und Ziele
+Die Ausbildung in den Bildungsgängen der Berufsfachschule für Assistenten soll die Schülerinnen und Schüler auf ihre spätere Berufstätigkeit in Laboratorien, Instituten, Werkseinrichtungen, Prüf- und Versuchsfeldern der Wirtschaft, Verwaltung und Wissenschaft vorbereiten. Zentrales Ziel der Berufsfachschule für Assistenten ist es, die Entwicklung beruflicher Handlungskompetenz zu fördern und die Schülerinnen und Schüler zum selbstständigen Planen, Durchführen und Beurteilen von Arbeitsaufgaben zu befähigen. Handlungskompetenz entfaltet sich in den Dimensionen von Fachkompetenz, Selbstkompetenz und Sozialkompetenz. Die Entwicklung beruflicher Flexibilität und Mobilität sowie die Fähigkeit und Bereitschaft zur Fort- und Weiterbildung sind ebenfalls Ziele des Bildungsgangs.
+§ 2  Unterrichtsgrundsätze
+Der berufsbezogene Unterricht in der Berufsfachschule für Assistenten folgt didaktisch dem Lernfeldkonzept. Der berufsübergreifende Lernbereich ist nach Fächern strukturiert. Die Lernfelder in den Bildungsgängen der Berufsfachschule für Assistenten finden ihre unterrichtliche Umsetzung in Lernsituationen, die sich sowohl bei der Auswahl der Inhalte als auch als methodisches Prinzip bei der Gestaltung des Unterrichts an beruflichen Handlungssituationen orientieren.
+§ 3  Dauer und Organisation der Ausbildung
+(1) Die Ausbildung dauert in der Regel zwei Jahre. Der Unterricht umfasst einen berufsübergreifenden und einen berufsbezogenen Lernbereich sowie ein Betriebspraktikum.
+(2) Mit Genehmigung der Senatorin für Kinder und Bildung können folgende Bildungsgänge mit Schwerpunkten eingerichtet werden:
+  1. Bildungsgänge zur technischen Assistentin/zum technischen Assistenten,
+    a) Biologisch-technische Assistentin/Biologisch-technischer Assistent mit dem Schwerpunkt Biochemie
+    b) Chemisch-technische Assistentin/Chemisch-technischer Assistent
+    c) Gestaltungstechnische Assistentin/Gestaltungstechnischer Assistent mit dem Schwerpunkt Grafik
+    d) Informationstechnische Assistentin/Informationstechnischer Assistent mit dem Schwerpunkt Informations- und Netzwerksystemtechnik
+    e) Mathematisch-technische Assistentin/Mathematisch-technischer Assistent mit dem Schwerpunkt Wirtschaftswissenschaft und Wirtschaftsinformatik
+    f) Physikalisch-technische Assistentin/Physikalisch-technischer Assistent
+  2. Bildungsgänge zur kaufmännischen Assistentin/zum kaufmännischen Assistenten
+    a) Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Fremdsprachen
+    b) Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Informationsverarbeitung
+§ 4  Unterrichtsfächer, Lernfelder und Stundentafeln
+(1) Die Unterrichtsfächer und Lernfelder, ihre Zuordnung zu den Lernbereichen und die Zahl der Unterrichtsstunden je Lernbereich ergeben sich aus der Rahmenstundentafel der Anlage in Verbindung mit der für den jeweiligen Bildungsgang gültigen Stundentafel.
+(2) Wird Englisch im berufsübergreifenden Lernbereich angeboten, können Schülerinnen und Schüler nicht deutscher Herkunftssprache, die anstelle der Note in der Fremdsprache Englisch im berechtigenden Zeugnis einer deutschen Schule die Note in der Herkunftssprache erhalten haben oder die nicht über einen an einer deutschen Schule erworbenen Abschluss nach § 6 Absatz 1 Nummer 1 verfügen, anstelle der Prüfung in der Fremdsprache Englisch die Feststellungsprüfung in ihrer Herkunftssprache wählen. Diese Prüfung findet am Anfang des Bildungsgangs statt. Bei nicht ausreichenden Leistungen kann die Prüfung einmal wiederholt werden. Die Wiederholung findet bis zum Ende des ersten Ausbildungsjahres statt. Ausgenommen sind die Schülerinnen und Schüler der Bildungsgänge, in denen Englisch im berufsbezogenen Lernbereich der Stundentafel ausgewiesen ist. Die Schülerinnen und Schüler, die sich für eine Feststellungsprüfung in ihrer Herkunftssprache entschieden haben, nehmen am Englisch-Anfängerunterricht teil. Die Note des Englisch-Anfängerunterrichts wird nicht in die Bewertung der Abschlussqualifikation einbezogen. Im Abschlusszeugnis oder im Abgangszeugnis wird der Unterricht mit dem Vermerk „Nicht Gegenstand der Prüfung” ausgewiesen. Auf Wunsch der Schülerin oder des Schülers wird eine Note erteilt. Im Abschlusszeugnis oder im Abgangszeugnis wird die Note der Sprachfeststellungsprüfung in der Herkunftssprache anstelle der Note in der Fremdsprache Englisch ausgewiesen und in die Bewertung der Abschlussqualifikation einbezogen.
+§ 5  Praktikum
+(1) Als Teil der schulischen Ausbildung wird ein Praktikum in geeigneten Betrieben oder Einrichtungen (Praktikumsstellen) oder in Form anderer Lernortekooperationen durchgeführt. In begründeten Ausnahmefällen und nach Genehmigung durch die Fachaufsicht, kann das Praktikum beim Fehlen geeigneter Praktikumsstellen in schuleigenen Einrichtungen stattfinden. Das Praktikum soll gleichzeitig für alle Schülerinnen und Schüler eines Klassenverbandes durchgeführt werden. Die Schülerinnen und Schüler unterliegen während der Dauer des Praktikums denselben gesetzlichen Bestimmungen über Unfall- und Haftpflichtversicherung, die für die Teilnahme an schulischen Veranstaltungen gelten.
+(2) Das Praktikum soll mindestens vier Wochen in Vollzeit dauern. Davon soll ein Teil in den Ferien abgeleistet werden. Das Praktikum kann unter Einhaltung des zeitlichen Umfangs statt in Blockform auch in anderen Organisationsformen durchgeführt werden. Über die Dauer des Praktikums, über die Möglichkeit einer Verlängerung und über die Organisationsform entscheidet die Schule.
+(3) Die Ziele und der Ablauf des Praktikums sowie die Aufgaben der Schülerin oder des Schülers werden zwischen Schule und Praktikumsstelle abgestimmt. Während des Praktikums wird die Schülerin oder der Schüler von einer Lehrerin oder einem Lehrer der Schule betreut.
+(4) Am Ende des Praktikums wird von der Praktikumsstelle eine schriftliche Beurteilung abgegeben. Sie soll mindestens Angaben über den Beurteilungszeitraum, die erworbenen Kompetenzen, die erbrachten Leistungen und die Fehlzeiten enthalten. Die Bewertung wird durch die Schule auf der Grundlage der Beurteilung der Praktikumsstelle sowie der betreuenden Lehrerin oder des betreuenden Lehrers vorgenommen und lautet „mit Erfolg teilgenommen“ oder „ohne Erfolg teilgenommen”. Das Praktikum kann nur dann als „mit Erfolg teilgenommen“ gewertet werden, wenn die Schülerin oder der Schüler mindestens 75 vom Hundert der Praktikumszeit abgeleistet hat; sie ist Voraussetzung für das Erreichen des Ausbildungszieles. Über Ausnahmen zur Dauer der Teilnahme am Praktikum entscheidet die Schule.
+§ 6  Voraussetzungen für die Zulassung
+(1) Voraussetzung für die Zulassung ist
+  1. der Mittlere Schulabschluss,
+  2. in zwei für den Bildungsgang maßgeblichen Unterrichtsfächern mindestens die Note „befriedigend“ und
+  3. die Teilnahme an einem Beratungsgespräch in der Schule, wenn die Schülerin oder der Schüler einen Antrag nach Absatz 2 stellt.
+Die für den Bildungsgang maßgeblichen Unterrichtsfächer nach Nummer 2 werden von den aufnehmenden Schulen in Abstimmung mit der Senatorin für Kinder und Bildung bestimmt. Wurde der Mittlere Schulabschluss an einer Schule mit Fachleistungsdifferenzierung erworben, so gilt für die zwei Unterrichtsfächer, die für die Zulassung zum Bildungsgang maßgeblich sind, für das erweiterte Anforderungsniveau mindestens die Note „ausreichend“ und für das grundlegende Anforderungsniveau mindestens die Note „befriedigend“.
+(2) Aus besonderen Gründen, die in der Person der Schülerin oder des Schülers liegen, kann die Senatorin für Kinder und Bildung eine Bewerberin oder einen Bewerber unter Berücksichtigung einer Stellungnahme der Schule abweichend von den Zulassungsvoraussetzungen des Absatzes 1 Nummer 1 und 2 zulassen.
+(3) Bewerberinnen und Bewerber, die bereits einen Abschluss besitzen, der in diesem Bildungsgang erworben wird, oder jene, die eine Abschlussprüfung in einer zweijährigen Berufsfachschule mit einer vergleichbaren Fachrichtung endgültig nicht bestanden haben, werden nicht zugelassen.
+(4) Bewerberinnen und Bewerber nicht deutscher Herkunftssprache, die nicht über einen an einer deutschen Schule erworbenen berechtigenden Abschluss nach Absatz 1 Nummer 1 verfügen, müssen ausreichende deutsche Sprachkenntnisse nachweisen. Der Nachweis wird durch die erfolgreiche Teilnahme an einem Zulassungsverfahren nach § 7 erbracht.
+§ 7  Verfahren zum Nachweis deutscher Sprachkenntnisse für Bewerberinnen und Bewerber nicht deutscher Herkunftssprache
+(1) Die Senatorin für Kinder und Bildung bestimmt, an welchen Schulen ein Zulassungsverfahren für Bewerberinnen und Bewerber nicht deutscher Herkunftssprache durchgeführt wird und setzt den Zulassungsausschuss ein. Der Zulassungsausschuss besteht aus der Vorsitzenden oder dem Vorsitzenden und zwei Fachlehrerinnen oder Fachlehrern für Deutsch. Das Zulassungsverfahren wird unverzüglich nach dem in § 8 Absatz 1 bestimmten Termin durchgeführt.
+(2) Die Kenntnisse in der deutschen Sprache werden durch eine Feststellungsprüfung, die aus einem schriftlichen und einem mündlichen Teil besteht, nachgewiesen. Beide Prüfungsteile können an einem Tag stattfinden. Die Zeit für den schriftlichen Teil beträgt mindestens 60 und höchstens 90 Minuten, für den mündlichen Teil mindestens 15 und höchstens 20 Minuten. Die Sprachfeststellungsprüfung muss mindestens dem Niveau B1 des Gemeinsamen Europäischen Referenzrahmens für Sprachen entsprechen.
+(3) Die schriftliche Arbeit ist von zwei Fachlehrerinnen oder Fachlehrern zu beurteilen. Kommt nur eine oder einer der beiden Fachlehrerinnen oder Fachlehrer zu der Überzeugung, dass mit der Arbeit ausreichende Sprachkenntnisse nachgewiesen sind, entscheidet die Vorsitzende oder der Vorsitzende.
+(4) Unter Berücksichtigung der Ergebnisse des schriftlichen und des mündlichen Teils der Prüfung stellt der Zulassungsausschuss fest, ob die Bewerberin oder der Bewerber zugelassen werden kann.
+(5) Die Bewerberin oder der Bewerber kann ein zweites Mal am Zulassungsverfahren teilnehmen, wenn sie oder er eine ausreichende Vorbereitung glaubhaft macht. Die Senatorin für Kinder und Bildung kann auf Antrag gestatten, dass die Bewerberin oder der Bewerber ein drittes Mal am Zulassungsverfahren teilnimmt, wenn hinreichend wahrscheinlich ist, dass sie oder er die geforderten Sprachkenntnisse nachweisen wird.
+(6) Über alle mit dem Zulassungsverfahren zusammenhängenden Vorgänge sind Niederschriften anzufertigen.
+(7) Die Sprachfeststellungsprüfung entfällt bei Nachweis an anderer Stelle erworbener Zertifikate auf mindestens Niveau B1 des Gemeinsamen Europäischen Referenzrahmens für Sprachen.
+§ 8  Zulassung
+(1) Der Antrag auf Zulassung ist unter Angabe des gewünschten Bildungsgangs bei der Schule bis zum 1. März eines jeden Jahres einzureichen. Mit dem Antrag ist die Erfüllung der Zulassungsvoraussetzungen nach § 6 Absatz 1 nachzuweisen sowie eine Erklärung darüber abzugeben, ob ein Ablehnungsgrund nach § 6 Absatz 3 vorliegt.
+(2) Über die Zulassung entscheidet die Schule. Wenn die nach Absatz 1 erforderlichen Nachweise und die Erklärung noch nicht vorliegen, wird die Zulassung unter der Bedingung ausgesprochen, dass diese spätestens bis sieben Tage nach Beginn der Sommerferien vorgelegt werden.
+(3) Bewerberinnen und Bewerber nicht deutscher Herkunftssprache sind auf die Wahlmöglichkeit nach § 4 Absatz 2 hinzuweisen. Wollen sie von der Wahlmöglichkeit Gebrauch machen, teilen sie dies im Antrag auf Zulassung mit.
+§ 9  Wechsel des Bildungsganges
+(1) Ein Wechsel des Bildungsganges innerhalb der Berufsfachschule für Assistenten ist einmal möglich und der Senatorin für Kinder und Bildung von der Schule mitzuteilen.
+(2) Aus besonderen Gründen, die in der Person der Schülerin oder des Schülers liegen, kann die Senatorin für Kinder und Bildung einer Schülerin oder einem Schüler unter Berücksichtigung einer Stellungnahme der Schule abweichend von Absatz 1 einen zweiten Wechsel genehmigen.
+Teil 2  Prüfung
+§ 10  Allgemeines
+(1) Die Ausbildung schließt mit einer Prüfung ab. Die Prüfung besteht aus einem schriftlichen und einem praktischen Teil. Beide Teile werden in einer gemeinsamen Fallbeschreibung miteinander verknüpft und orientieren sich an vollständigen, betrieblichen Handlungen. Beide Teile der Prüfung können sich auf die Fächer und Lernfelder nach § 13 Absatz 1 erstrecken. Politische Inhalte sind Teil der schriftlichen Prüfung.
+(2) Schulen mit gleichem Bildungsgang und gleichem Schwerpunkt erstellen gemeinsame Prüfungen.
+§ 11  Abnahme der Prüfung
+Die Prüfung wird von den öffentlichen Schulen im Lande Bremen, die einen Bildungsgang der Berufsfachschule für Assistenten eingerichtet haben, durchgeführt.
+§ 12  Prüfungsausschuss
+(1) Zur Durchführung der Prüfung wird ein Prüfungsausschuss gebildet. Dem Prüfungsausschuss gehören als Mitglieder an:
+  1. die Schulleiterin oder der Schulleiter,
+  2. die für den Bildungsgang verantwortliche Abteilungsleiterin oder der für den Bildungsgang verantwortliche Abteilungsleiter oder die für den Bildungsgang verantwortliche Lehrerin oder der für den Bildungsgang verantwortliche Lehrer der Schule,
+  3. die Fachlehrerinnen und die Fachlehrer, die in den für die Prüfung schwerpunktmäßig relevanten Lernfeldern unterrichtet haben.
+Den Vorsitz hat die Schulleiterin oder der Schulleiter oder eine von ihr oder ihm benannte Vertreterin oder ein von ihr oder ihm benannter Vertreter.
+(2) Der Prüfungsausschuss ist beschlussfähig, wenn die Mehrheit der Mitglieder, darunter die oder der Vorsitzende, anwesend ist. Beschlüsse werden mit Stimmenmehrheit der anwesenden Mitglieder gefasst. Bei Stimmengleichheit entscheidet die Stimme der Vorsitzenden oder des Vorsitzenden. Stimmenthaltungen sind nicht zulässig.
+(3) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses kann gegen Beschlüsse des Prüfungsausschusses Einspruch einlegen, über den die Senatorin für Kinder und Bildung entscheidet. Der Einspruch hat aufschiebende Wirkung.
+(4) Der Prüfungsausschuss verabredet vor Beginn der Prüfung einheitliche Maßstäbe für die Beurteilung der Prüfungsleistungen.
+(5) In Fällen, in denen nichts anderes bestimmt ist, trifft der Prüfungsausschuss die Entscheidungen.
+§ 13  Gegenstand, Ort und Termine der Prüfung, Belehrung
+(1) Gegenstand der Prüfung können alle Fächer und alle bis zur Prüfung abgeschlossenen Lernfelder beider Ausbildungsjahre sein. § 4 Absatz 2 bleibt unberührt.
+(2) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses setzt Ort, Datum und Uhrzeit für alle Teile der Prüfung verbindlich fest und teilt allen Beteiligten unverzüglich Prüfungsort und Termine in geeigneter Form mit.
+(3) Den Prüflingen ist vor Beginn der Prüfung der Text der §§ 24 und 25 bekannt zu geben.
+§ 14  Berücksichtigung besonderer Belange von Menschen mit Behinderung
+(1) Im Prüfungsverfahren sind die besonderen Belange von Menschen mit Behinderung durch Nachteilsausgleiche zu berücksichtigen.
+(2) Der Prüfling hat rechtzeitig vor der Prüfung auf seine Behinderung hinzuweisen, wenn diese im Prüfungsverfahren berücksichtigt werden soll.
+(3) Der Prüfungsausschuss legt in der ersten Prüfungskonferenz fest, durch welche besonderen Maßnahmen die Belange des Menschen mit Behinderung in der Prüfung berücksichtigt werden. Diese Maßnahmen sollen die behinderungsbedingte Benachteiligung ausgleichen, nicht jedoch die Prüfungsanforderungen qualitativ verändern.
+(4) Als geeignete Maßnahmen kommen eine besondere Organisation und eine besondere Gestaltung der Prüfung sowie die Zulassung spezieller Hilfen in Betracht.
+§ 15  Zulassung zur Prüfung
+(1) Zur Prüfung ist zugelassen, wer
+  1. zu Beginn der Prüfung Schülerin oder Schüler des jeweiligen Bildungsgangs ist,
+  2. kein mit „ungenügend“ abgeschlossenes Fach oder Lernfeld im zweiten Ausbildungsjahr hat,
+  3. einen Notendurchschnitt nach Absatz 2 von 4,0 oder besser aufweist und
+  4. erfolgreich am Praktikum nach § 5 teilgenommen hat.
+Über Ausnahmen entscheidet der Prüfungsausschuss.
+(2) Zur Ermittlung der Durchschnittsnote werden die Noten der abgeschlossenen Lernfelder und Fächer entsprechend ihres Stundenumfangs gemäß der Stundentafel gewichtet.
+(3) Die Entscheidung über die Nichtzulassung zur Prüfung wird in der ersten Prüfungskonferenz nach § 18 getroffen und der Schülerin oder dem Schüler schriftlich mitgeteilt.
+§ 16  Festlegungen zur Prüfung
+(1) Spätestens zu Beginn des letzten Ausbildungshalbjahres legt die Senatorin für Kinder und Bildung auf Vorschlag der Schule fest, aus welchen vier Lernfeldern und Fächern sich der schriftliche und der praktische Teil der Prüfung zusammensetzen sollen. Schulen mit gleichem Bildungsgang und gleichem Schwerpunkt einigen sich auf die gleichen vier Lernfelder und Fächer.
+(2) Die Entscheidungen über die Festlegungen zur Prüfung werden den Prüflingen unverzüglich zur Kenntnis gegeben.
+§ 17  Vornote
+Die Vornote ergibt sich aus den Leistungen im Bildungsgang in den Lernfeldern und Fächern nach § 13 Absatz 1. Die Vornote wird aus den nach Stundenumfang gewichteten Endnoten aller abgeschlossenen Lernfelder und der jeweils letzten Note aller Fächer des berufsübergreifenden Lernbereichs gebildet. Das Ergebnis wird auf eine Stelle nach dem Komma geschnitten.
+§ 18  Erste Prüfungskonferenz
+(1) Spätestens am dritten Unterrichtstag vor Beginn des ersten Prüfungsteils tritt der Prüfungsausschuss zur ersten Prüfungskonferenz zusammen.
+(2) In dieser Prüfungskonferenz beschließt der Prüfungsausschuss auf Vorschlag der Fachlehrerinnen und Fachlehrer die Vornote.
+(3) Auf der Grundlage der Zulassungsvoraussetzungen nach § 15 trifft der Prüfungsausschuss die Entscheidung über die Zulassung zur Prüfung.
+(4) Spätestens am zweiten Unterrichtstag vor Beginn des ersten Prüfungsteils wird dem Prüfling die Vornote mitgeteilt.
+§ 19  Durchführung der Prüfung
+(1) Die Prüfung erstreckt sich auf die nach den §§ 13 und 16 festgelegten Lernfelder und Fächer. Der Umfang der praktischen Prüfung beträgt mindestens 4 Zeitstunden. Der Umfang der schriftlichen Prüfung beträgt mindestens 8 Zeitstunden.
+(2) Die Schulleiterin oder der Schulleiter legt der Senatorin für Kinder und Bildung spätestens bis zum Ende des ersten Schulhalbjahres des zweiten Ausbildungsjahres zwei Prüfungsvorschläge mit jeweils einem schriftlichen und einem praktischen Teil in einem versiegelten Umschlag vor. Zu allen Aufgabenvorschlägen gehören die Angabe der Bearbeitungsdauer und eine genaue Beschreibung der vom Prüfling erwarteten Leistung (Erwartungshorizont) einschließlich der Angabe von Bewertungskriterien. Aus diesen Vorschlägen wählt die Senatorin für Kinder und Bildung einen Prüfungsvorschlag aus. Wenn ihr die Prüfungsvorschläge teilweise oder ganz änderungsbedürftig oder ungeeignet erscheinen, kann sie neue Prüfungsvorschläge anfordern.
+(3) Die Vorbereitungen für die Durchführung der Prüfung sind so zu treffen, dass die Prüfungsaufgaben den Prüflingen nicht vor der Prüfung bekannt werden.
+(4) Die Zeit für die Bearbeitung der Prüfungsaufgaben beginnt unmittelbar, nachdem die Prüfungsaufgaben bekanntgegeben und beigefügte Texte gelesen worden sind.
+(5) Die Prüfung findet unter Aufsicht statt.
+(6) Die Prüfungsarbeiten werden vom Mitglied des Prüfungsausschusses nach § 12 Absatz 1 Nummer 3 als Referentin oder Referent beurteilt und benotet. Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses bestellt für jeden Prüfungsteil eine weitere Fachlehrerin oder einen weiteren Fachlehrer als Korreferentin oder Korreferenten. Diese oder dieser beurteilt und benotet die Prüfungsarbeiten ebenfalls. Stimmen die erteilten Noten nicht überein, entscheidet der Prüfungsausschuss.
+§ 20  Noten
+(1) Alle nach dieser Verordnung zu erteilenden Noten richten sich nach der Notenskala der Zeugnisordnung und dem für berufliche Vollzeit-Bildungsgänge festgelegten Notenschlüssel:
+1
+2
+3
+4
+5
+6
+ab 85 Prozent
+ab 73 Prozent
+ab 59 Prozent
+ab 45 Prozent
+ab 27 Prozent
+unter 27 Prozent
+sehr gut
+gut
+befriedigend
+ausreichend
+mangelhaft
+ungenügend
+(2) Auf der Grundlage der Prozentwerte des Notenschlüssels werden die Vornoten, die Noten der Prüfung und die Endnoten gebildet.
+§ 21  Ergebnis des Prüfungsblocks
+(1) Der Prüfungsblock umfasst den schriftlichen und praktischen Teil der Prüfung nach § 10. Die Note des schriftlichen Prüfungsteils und die Note des praktischen Prüfungsteils fließen zu gleichen Anteilen in die Note des Prüfungsblocks ein.
+(2) Der Prüfungsblock ist nicht bestanden, wenn
+  1. die Bewertung der Leistungen eines Prüfungsteils „ungenügend“ lautet oder
+  2. die Bewertung der Leistungen in beiden Prüfungsteilen „mangelhaft“ lautet oder
+  3. die Bewertung der Leistungen in der Prüfung in einem Prüfungsteil „mangelhaft“ lautet und ein Ausgleich für diesen Prüfungsteil nicht gegeben ist; ein Ausgleich ist nur gegeben, wenn die Bewertung im anderen Prüfungsteil mindestens „befriedigend“ lautet.
+In allen anderen Fällen ist die Prüfung in den Fächern des Prüfungsblocks bestanden.
+§ 22  Zweite Prüfungskonferenz, Ergebnis der Prüfung
+(1) Der Prüfungsausschuss beschließt in der zweiten Prüfungskonferenz die Note des Prüfungsblocks, die Endnote der Prüfung und das Ergebnis der Prüfung. Die Endnote der Prüfung ergibt sich aus der Vornote und der Note des Prüfungsblocks. Die Vornote wird mit zwei Dritteln und die Note des Prüfungsblocks mit einem Drittel gewichtet.
+(2) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses gibt dem Prüfling im Anschluss an die zweite Prüfungskonferenz die Noten der einzelnen Prüfungsteile sowie das Ergebnis der Prüfung bekannt. Das Ergebnis der Prüfung lautet „bestanden“ oder „nicht bestanden“.
+(3) Hat der Prüfling die Prüfung bestanden, erhält er ein Abschlusszeugnis mit der Berechtigung, die Berufsbezeichnung
+  1. Staatlich geprüfte Biologisch-technische Assistentin/Staatlich geprüfter Biologisch-technischer Assistent mit dem Schwerpunkt Biochemie
+  2. Staatlich geprüfte Chemisch-technische Assistentin/Staatlich geprüfter Chemisch-technischer Assistent
+  3. Staatlich geprüfte Gestaltungstechnische Assistentin/Staatlich geprüfter Gestaltungstechnischer Assistent mit dem Schwerpunkt Grafik
+  4. Staatlich geprüfte Informationstechnische Assistentin/Staatlich geprüfter Informationstechnischer Assistent mit dem Schwerpunkt Informations- und Netzwerksystemtechnik
+  5. Staatlich geprüfte Mathematisch-technische Assistentin/Staatlich geprüfter Mathematisch-technischer Assistent mit dem Schwerpunkt Wirtschaftswissenschaft und Wirtschaftsinformatik
+  6. Staatlich geprüfte Physikalisch-technische Assistentin/Staatlich geprüfter Physikalisch-technischer Assistent
+  7. Staatlich geprüfte kaufmännische Assistentin/Staatlich geprüfter kaufmännischer Assistent mit dem Schwerpunkt Fremdsprachen
+  8. Staatlich geprüfte kaufmännische Assistentin/Staatlich geprüfter kaufmännischer Assistent mit dem Schwerpunkt Informationsverarbeitung zu führen.
+Hat der Prüfling die Prüfung nicht bestanden und verlässt er die Schule, erhält er ein Abgangszeugnis. Form und Inhalt der Zeugnisse legt die Senatorin für Kinder und Bildung fest.
+§ 23  Wiederholung der Prüfung
+(1) Ein Prüfling, der die Prüfung nicht bestanden hat, kann sie einmal wiederholen. Die Senatorin für Kinder und Bildung kann auf Antrag eine zweite Wiederholung der Prüfung gestatten, wenn ihr Bestehen hinreichend wahrscheinlich ist.
+(2) Die Wiederholung findet im Rahmen der nächstfolgenden Prüfung statt. Bis zum Prüfungstermin nimmt die Schülerin oder der Schüler am Unterricht des letzten Ausbildungsjahres teil.
+§ 24  Täuschung und Behinderung
+(1) Versucht ein Prüfling, das Ergebnis der Prüfung durch Täuschung zu beeinflussen, so ist die gesamte Prüfung für nicht bestanden zu erklären. In leichteren Fällen ist die betroffene Teilleistung für nicht bestanden zu erklären und mit der Note „ungenügend“ zu bewerten.
+(2) Behindert ein Prüfling durch sein Verhalten die Prüfung so schwerwiegend, dass es nicht möglich ist, seine Prüfung oder die anderer Prüflinge ordnungsgemäß durchzuführen, so kann er von der weiteren Prüfung ausgeschlossen werden. Die gesamte Prüfung ist dann für nicht bestanden zu erklären.
+(3) Der Prüfling hat das Recht, solange weiter an der Prüfung teilzunehmen, bis der Prüfungsausschuss, der unverzüglich einzuberufen ist, die notwendigen Entscheidungen nach Absatz 1 oder 2 getroffen hat. Vor seiner Entscheidung hat der Prüfungsausschuss den Prüfling anzuhören.
+§ 25  Versäumnis
+(1) Wer wegen Erkrankung oder aus anderen wichtigen Gründen einen Prüfungsteil versäumt, muss unverzüglich ein ärztliches Attest vorlegen beziehungsweise nachweisen, dass er das Versäumnis nicht zu vertreten hat.
+(2) Versäumt ein Prüfling aus von ihm zu vertretenden Gründen einen Prüfungsteil, sind die deswegen nicht erbrachten Leistungen mit „ungenügend“ zu bewerten. In leichteren Fällen ist der entsprechende Prüfungsteil zu wiederholen. Versäumt ein Prüfling aus von ihm zu vertretenden Gründen mehr als einen Prüfungsteil, ist die gesamte Prüfung für nicht bestanden zu erklären.
+(3) In Fällen, in denen der Prüfling aus von ihm nicht zu vertretenden Gründen einen Prüfungsteil erneut versäumt, setzt der Prüfungsausschuss einen neuen Termin fest. Für den Prüfungsteil kann ein nicht gewählter Aufgabenvorschlag gestellt werden, wenn er von der Fachaufsicht genehmigt wurde.
+§ 26  Niederschriften
+(1) Über alle mit der Prüfung zusammenhängenden Beratungen und Prüfungsvorgänge werden Niederschriften angefertigt.
+(2) Die Niederschriften sind von der Protokollführerin oder vom Protokollführer und von der Vorsitzenden oder vom Vorsitzenden des Prüfungsausschusses oder des Teilprüfungsausschusses zu unterzeichnen.
+(3) Die Niederschrift über die Prüfung führt die aufsichtführende Lehrerin oder der aufsichtführende Lehrer. Sie soll insbesondere enthalten:
+  1. den Sitzplan der Prüflinge,
+  2. die Namen der aufsichtführenden Lehrerinnen und Lehrer und die jeweiligen Aufsichtszeiten,
+  3. den Beginn der Aufgabenstellung und der Arbeitszeit,
+  4. den letztmöglichen Zeitpunkt für die Abgabe der Arbeit,
+  5. die Zeiten, zu denen einzelne Prüflinge den Raum verlassen und zurückkehren,
+  6. die Zeiten, zu denen die Prüflinge ihre Arbeiten abgeben,
+  7. Schülerinnen und Schüler mit Nachteilsausgleichen und deren Umfang,
+  8. besondere Vorkommnisse.
+(4) Den Niederschriften ist eine Liste beizufügen, die die Vornote, die Note des Prüfungsblocks, die Endnote der Prüfung sowie das Ergebnis der Prüfung enthält.
+Teil 3  Schlussbestimmungen
+§ 27  Übergangsbestimmung
+(1) Diese Verordnung ist ab dem 1. März 2019 für die Bildungsgänge Chemisch-technische Assistentin/Chemisch technischer Assistent sowie Biologisch-technische Assistentin/Biologisch-technischer Assistent mit dem Schwerpunkt Biochemie anzuwenden. Auf Bildungsgänge nach Satz 1, die vor dem 1. März 2019 begonnen haben, ist die Verordnung über die Berufsfachschule für Assistenten in ihrer bis zum Ablauf des 28. Februar 2019 geltenden Fassung weiter anzuwenden.
+(2) Diese Verordnung ist erst ab dem 1. März 2020 für die Bildungsgänge Informationstechnische Assistentin/Informationstechnischer Assistent mit dem Schwerpunkt Informations- und Netzwerksystemtechnik sowie Mathematisch-technische Assistentin/Mathematisch-technischer Assistent mit dem Schwerpunkt Wirtschaftswissenschaft und Wirtschaftsinformatik anzuwenden. Auf Bildungsgänge nach Satz 1, die vor dem 1. März 2020 begonnen haben, ist die Verordnung über die Berufsfachschule für Assistenten in ihrer bis zum Ablauf des 28. Februar 2019 geltenden Fassung weiter anzuwenden.
+(3) Diese Verordnung ist erst ab dem 1. März 2021 für die Bildungsgänge Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Fremdsprachen sowie Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Informationsverarbeitung anzuwenden. Auf Bildungsgänge nach Satz 1, die vor dem 1. März 2021 begonnen haben, ist die Verordnung über die Berufsfachschule für Assistenten in ihrer bis zum Ablauf des 28. Februar 2019 geltenden Fassung weiter anzuwenden.
+(4) Diese Verordnung ist erst ab dem 1. März 2022 für die Bildungsgänge Gestaltungstechnische Assistentin/Gestaltungstechnischer Assistent mit dem Schwerpunkt Grafik sowie Physikalisch-technische Assistentin/Physikalisch-technischer Assistent anzuwenden. Auf Bildungsgänge nach Satz 1, die vor dem 1. März 2022 begonnen haben, ist die Verordnung über die Berufsfachschule für Assistenten in ihrer bis zum Ablauf des 28. Februar 2019 geltenden Fassung weiter anzuwenden.
+§ 28  Inkrafttreten, Außerkrafttreten
+(1) Diese Verordnung tritt mit Wirkung vom 1. März 2019 in Kraft.
+(2) Gleichzeitig tritt die Verordnung über die Berufsfachschule für Assistenten vom 8. November 2012 (Brem.GBl. S. 452 - 223-o-5a), die zuletzt durch Artikel 4 der Verordnung vom 30. November 2016 (Brem.GBl. S. 1001) geändert worden ist, außer Kraft.
diff --git a/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-neu.txt b/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-neu.txt
new file mode 100644
index 0000000..f482815
--- /dev/null
+++ b/src/test/resources/sampledata/Bremen/AssBerFSchulV-BR-neu.txt
@@ -0,0 +1,178 @@
+Verordnung über die Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten
+(AssBerFSchulV BR 2019)
+Vom 24. April 2019
+(Brem.GBl. 2019, S. 297)
+Teil 1  Ausbildung
+§ 1  Aufgaben und Ziele
+Die Ausbildung in den Bildungsgängen der Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten soll die Schülerinnen und Schüler auf ihre spätere Berufstätigkeit in Laboratorien, Instituten, Werkseinrichtungen, Prüf- und Versuchsfeldern der Wirtschaft, Verwaltung und Wissenschaft vorbereiten. Zentrales Ziel der Berufsfachschule für Assistenten ist es, die Entwicklung beruflicher Handlungskompetenz zu fördern und die Schülerinnen und Schüler zum selbstständigen Planen, Durchführen und Beurteilen von Arbeitsaufgaben zu befähigen. Handlungskompetenz entfaltet sich in den Dimensionen von Fachkompetenz, Selbstkompetenz und Sozialkompetenz. Die Entwicklung beruflicher Flexibilität und Mobilität sowie die Fähigkeit und Bereitschaft zur Fort- und Weiterbildung sind ebenfalls Ziele des Bildungsgangs.
+§ 2  Unterrichtsgrundsätze
+Der berufsbezogene Unterricht in der Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten folgt didaktisch dem Lernfeldkonzept. Der berufsübergreifende Lernbereich ist nach Fächern strukturiert. Die Lernfelder in den Bildungsgängen der Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten finden ihre unterrichtliche Umsetzung in Lernsituationen, die sich sowohl bei der Auswahl der Inhalte als auch als methodisches Prinzip bei der Gestaltung des Unterrichts an beruflichen Handlungssituationen orientieren.
+§ 3  Dauer und Organisation der Ausbildung
+(1) Die Ausbildung dauert in der Regel zwei Jahre. Der Unterricht umfasst einen berufsübergreifenden und einen berufsbezogenen Lernbereich sowie ein Betriebspraktikum.
+(2) Mit Genehmigung der Senatorin oder des Senators für Kinder und Bildung können folgende Bildungsgänge eingerichtet werden:
+  1. Bildungsgänge der Berufsfachschule für technische Assistentinnen und technische Assistenten,
+    a) Biologisch-technische Assistentin/Biologisch-technischer Assistent mit dem Schwerpunkt Biochemie
+    b) Chemisch-technische Assistentin/Chemisch-technischer Assistent
+    c) Gestaltungstechnische Assistentin/Gestaltungstechnischer Assistent mit dem Schwerpunkt Grafik
+    d) Informationstechnische Assistentin/Informationstechnischer Assistent mit dem Schwerpunkt Informations- und Netzwerksystemtechnik
+    e) Mathematisch-technische Assistentin/Mathematisch-technischer Assistent mit dem Schwerpunkt Künstliche Intelligenz und Wirtschaftsinformatik
+  2. Bildungsgänge der Berufsfachschule für kaufmännische Assistentinnen und kaufmännische Assistenten,
+    a) Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Fremdsprachen
+    b) Kaufmännische Assistentin/Kaufmännischer Assistent mit dem Schwerpunkt Informationsverarbeitung
+§ 4  Unterrichtsfächer, Lernfelder und Stundentafeln
+(1) Die Unterrichtsfächer und Lernfelder, ihre Zuordnung zu den Lernbereichen und die Zahl der Unterrichtsstunden je Lernbereich ergeben sich aus der Rahmenstundentafel der Anlage in Verbindung mit der für den jeweiligen Bildungsgang gültigen Stundentafel.
+(2) Wird Englisch im berufsübergreifenden Lernbereich angeboten, können Schülerinnen und Schüler nicht deutscher Herkunftssprache, die anstelle der Note in der Fremdsprache Englisch im berechtigenden Zeugnis einer deutschen Schule die Note in der Herkunftssprache erhalten haben oder die nicht über einen an einer deutschen Schule erworbenen Abschluss nach § 6 Absatz 1 Nummer 1 verfügen, anstelle der Prüfung in der Fremdsprache Englisch die Feststellungsprüfung in ihrer Herkunftssprache wählen. Diese Prüfung findet am Anfang des Bildungsgangs statt. Bei nicht ausreichenden Leistungen kann die Prüfung einmal wiederholt werden. Die Wiederholung findet bis zum Ende des ersten Ausbildungsjahres statt. Ausgenommen sind die Schülerinnen und Schüler der Bildungsgänge, in denen Englisch im berufsbezogenen Lernbereich der Stundentafel ausgewiesen ist. Die Schülerinnen und Schüler, die sich für eine Feststellungsprüfung in ihrer Herkunftssprache entschieden haben, nehmen am Englisch-Anfängerunterricht teil. Die Note des Englisch-Anfängerunterrichts wird nicht in die Bewertung der Abschlussqualifikation einbezogen. Im Abschlusszeugnis oder im Abgangszeugnis wird der Unterricht mit dem Vermerk „Nicht Gegenstand der Prüfung” ausgewiesen. Auf Wunsch der Schülerin oder des Schülers wird eine Note erteilt. Im Abschlusszeugnis oder im Abgangszeugnis wird die Note der Sprachfeststellungsprüfung in der Herkunftssprache anstelle der Note in der Fremdsprache Englisch ausgewiesen und in die Bewertung der Abschlussqualifikation einbezogen.
+§ 5  Praktikum
+(1) Als Teil der schulischen Ausbildung wird ein Praktikum in geeigneten Betrieben oder Einrichtungen (Praktikumsstellen) oder in Form anderer Lernortekooperationen durchgeführt. In begründeten Ausnahmefällen und nach Genehmigung durch die Fachaufsicht, kann das Praktikum beim Fehlen geeigneter Praktikumsstellen in schuleigenen Einrichtungen stattfinden. Das Praktikum soll gleichzeitig für alle Schülerinnen und Schüler eines Klassenverbandes durchgeführt werden. Die Schülerinnen und Schüler unterliegen während der Dauer des Praktikums denselben gesetzlichen Bestimmungen über Unfall- und Haftpflichtversicherung, die für die Teilnahme an schulischen Veranstaltungen gelten.
+(2) Das Praktikum soll mindestens vier Wochen in Vollzeit dauern. Davon soll ein Teil in den Ferien abgeleistet werden. Das Praktikum kann unter Einhaltung des zeitlichen Umfangs statt in Blockform auch in anderen Organisationsformen durchgeführt werden. Über die Dauer des Praktikums, über die Möglichkeit einer Verlängerung und über die Organisationsform entscheidet die Schule.
+(3) Die Ziele und der Ablauf des Praktikums sowie die Aufgaben der Schülerin oder des Schülers werden zwischen Schule und Praktikumsstelle abgestimmt. Während des Praktikums wird die Schülerin oder der Schüler von einer Lehrerin oder einem Lehrer der Schule betreut.
+(4) Am Ende des Praktikums wird von der Praktikumsstelle eine schriftliche Beurteilung abgegeben. Sie soll mindestens Angaben über den Beurteilungszeitraum, die erworbenen Kompetenzen, die erbrachten Leistungen und die Fehlzeiten enthalten. Die Bewertung wird durch die Schule auf der Grundlage der Beurteilung der Praktikumsstelle sowie der betreuenden Lehrerin oder des betreuenden Lehrers vorgenommen und lautet „mit Erfolg teilgenommen“ oder „ohne Erfolg teilgenommen”. Das Praktikum kann nur dann als „mit Erfolg teilgenommen“ gewertet werden, wenn die Schülerin oder der Schüler mindestens 75 vom Hundert der Praktikumszeit abgeleistet hat; sie ist Voraussetzung für das Erreichen des Ausbildungszieles. Über Ausnahmen zur Dauer der Teilnahme am Praktikum entscheidet die Schule.
+§ 6  Voraussetzungen für die Zulassung
+(1) Voraussetzung für die Zulassung ist
+  1. der Mittlere Schulabschluss,
+  2. in zwei für den Bildungsgang maßgeblichen Unterrichtsfächern mindestens die Note „befriedigend“ und
+  3. die Teilnahme an einem Beratungsgespräch in der Schule, wenn die Schülerin oder der Schüler einen Antrag nach Absatz 2 stellt.
+Die für den Bildungsgang maßgeblichen Unterrichtsfächer nach Nummer 2 werden von den aufnehmenden Schulen in Abstimmung mit der Senatorin oder dem Senator für Kinder und Bildung bestimmt. Wurde der Mittlere Schulabschluss an einer Schule mit Fachleistungsdifferenzierung erworben, so gilt für die zwei Unterrichtsfächer, die für die Zulassung zum Bildungsgang maßgeblich sind, für das erweiterte Anforderungsniveau mindestens die Note „ausreichend“ und für das grundlegende Anforderungsniveau mindestens die Note „befriedigend“.
+(2) Aus besonderen Gründen, die in der Person der Schülerin oder des Schülers liegen, kann die Senatorin oder der Senator für Kinder und Bildung eine Bewerberin oder einen Bewerber unter Berücksichtigung einer Stellungnahme der Schule abweichend von den Zulassungsvoraussetzungen des Absatzes 1 Nummer 1 und 2 zulassen wenn die Bewerberin oder der Bewerber nachweisen kann, dass die nicht erfüllten Zulassungsvoraussetzungen durch gleichwertige, anderweitig erworbene Kompetenzen ausgeglichen werden können.
+(3) Bewerberinnen und Bewerber, die bereits einen Abschluss besitzen, der in diesem Bildungsgang erworben wird, oder jene, die eine Abschlussprüfung in einer zweijährigen Berufsfachschule mit einer vergleichbaren Fachrichtung endgültig nicht bestanden haben, werden nicht zugelassen.
+(4) Bewerberinnen und Bewerber nicht deutscher Herkunftssprache, die nicht über einen an einer deutschen Schule erworbenen berechtigenden Abschluss nach Absatz 1 Nummer 1 verfügen, müssen ausreichende deutsche Sprachkenntnisse nachweisen. Der Nachweis wird durch die erfolgreiche Teilnahme an einem Zulassungsverfahren nach § 7 erbracht.
+§ 7  Verfahren zum Nachweis deutscher Sprachkenntnisse für Bewerberinnen und Bewerber nicht deutscher Herkunftssprache
+(1) Die Senatorin oder der Senator für Kinder und Bildung bestimmt, an welchen Schulen ein Zulassungsverfahren für Bewerberinnen und Bewerber nicht deutscher Herkunftssprache durchgeführt wird und setzt den Zulassungsausschuss ein. Der Zulassungsausschuss besteht aus der Vorsitzenden oder dem Vorsitzenden und zwei Fachlehrerinnen oder Fachlehrern für Deutsch. Das Zulassungsverfahren wird unverzüglich nach dem in § 8 Absatz 1 bestimmten Termin durchgeführt.
+(2) Die Kenntnisse in der deutschen Sprache werden durch eine Feststellungsprüfung, die aus einem schriftlichen und einem mündlichen Teil besteht, nachgewiesen. Beide Prüfungsteile können an einem Tag stattfinden. Die Zeit für den schriftlichen Teil beträgt mindestens 60 und höchstens 90 Minuten, für den mündlichen Teil mindestens 15 und höchstens 20 Minuten. Die Sprachfeststellungsprüfung muss mindestens dem Niveau B1 des Gemeinsamen Europäischen Referenzrahmens für Sprachen entsprechen.
+(3) Die schriftliche Arbeit ist von zwei Fachlehrerinnen oder Fachlehrern zu beurteilen. Kommt nur eine oder einer der beiden Fachlehrerinnen oder Fachlehrer zu der Überzeugung, dass mit der Arbeit ausreichende Sprachkenntnisse nachgewiesen sind, entscheidet die Vorsitzende oder der Vorsitzende.
+(4) Unter Berücksichtigung der Ergebnisse des schriftlichen und des mündlichen Teils der Prüfung stellt der Zulassungsausschuss fest, ob die Bewerberin oder der Bewerber zugelassen werden kann.
+(5) Die Bewerberin oder der Bewerber kann ein zweites Mal am Zulassungsverfahren teilnehmen, wenn sie oder er eine ausreichende Vorbereitung glaubhaft macht. Die Senatorin oder der Senator für Kinder und Bildung kann auf Antrag gestatten, dass die Bewerberin oder der Bewerber ein drittes Mal am Zulassungsverfahren teilnimmt, wenn hinreichend wahrscheinlich ist, dass sie oder er die geforderten Sprachkenntnisse nachweisen wird.
+(6) Über alle mit dem Zulassungsverfahren zusammenhängenden Vorgänge sind Niederschriften anzufertigen.
+(7) Die Sprachfeststellungsprüfung entfällt bei Nachweis an anderer Stelle erworbener Zertifikate auf mindestens Niveau B1 des Gemeinsamen Europäischen Referenzrahmens für Sprachen.
+§ 8  Zulassung
+(1) Der Antrag auf Zulassung ist unter Angabe des gewünschten Bildungsgangs bei der Schule bis zum 1. März eines jeden Jahres einzureichen. Mit dem Antrag ist die Erfüllung der Zulassungsvoraussetzungen nach § 6 Absatz 1 nachzuweisen sowie eine Erklärung darüber abzugeben, ob ein Ablehnungsgrund nach § 6 Absatz 3 vorliegt.
+(2) Über die Zulassung entscheidet die Schule. Wenn die nach Absatz 1 erforderlichen Nachweise und die Erklärung noch nicht vorliegen, wird die Zulassung unter der Bedingung ausgesprochen, dass diese spätestens bis sieben Tage nach Beginn der Sommerferien vorgelegt werden.
+(3) Bewerberinnen und Bewerber nicht deutscher Herkunftssprache sind auf die Wahlmöglichkeit nach § 4 Absatz 2 hinzuweisen. Wollen sie von der Wahlmöglichkeit Gebrauch machen, teilen sie dies im Antrag auf Zulassung mit.
+§ 9  Wechsel des Bildungsganges
+(1) Ein Wechsel des Bildungsganges innerhalb der Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten ist einmal möglich und der Senatorin oder dem Senator für Kinder und Bildung von der Schule mitzuteilen.
+(2) Aus besonderen Gründen, die in der Person der Schülerin oder des Schülers liegen, kann die Senatorin oder der Senator für Kinder und Bildung einer Schülerin oder einem Schüler unter Berücksichtigung einer Stellungnahme der Schule abweichend von Absatz 1 einen zweiten Wechsel genehmigen.
+Teil 2  Prüfung
+§ 10  Allgemeines
+(1) Die Ausbildung schließt mit einer Prüfung ab. Diese besteht aus einem schriftlichen und einem praktischen Teil. Die Prüfungsteile sollen weitestgehend miteinander verknüpft sein und orientieren sich an vollständigen Handlungen auf Basis von betrieblichen Fallbeschreibungen.
+(2) Schulen mit gleichem Bildungsgang erstellen gemeinsame Prüfungen.
+§ 11  Abnahme der Prüfung
+Die Prüfung wird von den öffentlichen Schulen im Lande Bremen, die einen Bildungsgang der Berufsfachschule für technische und kaufmännische Assistentinnen und Assistenten eingerichtet haben, durchgeführt.
+§ 12  Prüfungsausschuss
+(1) Zur Durchführung der Prüfung wird ein Prüfungsausschuss gebildet. Dem Prüfungsausschuss gehören als Mitglieder an:
+  1. die Schulleiterin oder der Schulleiter,
+  2. die für den Bildungsgang verantwortliche Abteilungsleiterin oder der für den Bildungsgang verantwortliche Abteilungsleiter oder die für den Bildungsgang verantwortliche Lehrerin oder der für den Bildungsgang verantwortliche Lehrer der Schule,
+  3. die Fachlehrerinnen und die Fachlehrer, die in den für die Prüfung schwerpunktmäßig relevanten Lernfeldern unterrichtet haben.
+Den Vorsitz hat die Schulleiterin oder der Schulleiter oder eine von ihr oder ihm benannte Vertreterin oder ein von ihr oder ihm benannter Vertreter.
+(2) Der Prüfungsausschuss ist beschlussfähig, wenn die Mehrheit der Mitglieder, darunter die oder der Vorsitzende, anwesend ist. Beschlüsse werden mit Stimmenmehrheit der anwesenden Mitglieder gefasst. Bei Stimmengleichheit entscheidet die Stimme der Vorsitzenden oder des Vorsitzenden. Stimmenthaltungen sind nicht zulässig.
+(3) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses kann gegen Beschlüsse des Prüfungsausschusses Einspruch einlegen, über den die Senatorin oder der Senator entscheidet. Der Einspruch hat aufschiebende Wirkung.
+(4) Der Prüfungsausschuss verabredet vor Beginn der Prüfung einheitliche Maßstäbe für die Beurteilung der Prüfungsleistungen.
+(5) In Fällen, in denen nichts anderes bestimmt ist, trifft der Prüfungsausschuss die Entscheidungen.
+§ 13  Gegenstand, Ort und Termine der Prüfung, Belehrung
+(1) Gegenstand der Prüfung können alle Fächer und alle bis zur Prüfung abgeschlossenen Lernfelder beider Ausbildungsjahre sein. Politische Inhalte sind Bestandteil der schriftlichen Prüfung. § 4 Absatz 2 bleibt unberührt.
+(2) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses setzt Ort, Datum und Uhrzeit für alle Teile der Prüfung verbindlich fest und teilt allen Beteiligten unverzüglich Prüfungsort und Termine in geeigneter Form mit.
+(3) Den Prüflingen ist vor Beginn der Prüfung der Text der §§ 24, 25 und 26 bekannt zu geben.
+§ 14  Berücksichtigung besonderer Belange von Menschen mit Behinderung
+(1) Im Prüfungsverfahren sind die besonderen Belange von Menschen mit Behinderung durch Nachteilsausgleiche zu berücksichtigen.
+(2) Der Prüfling hat rechtzeitig vor der Prüfung auf seine Behinderung hinzuweisen, wenn diese im Prüfungsverfahren berücksichtigt werden soll.
+(3) Der Prüfungsausschuss legt in der ersten Prüfungskonferenz fest, durch welche besonderen Maßnahmen die Belange des Menschen mit Behinderung in der Prüfung berücksichtigt werden. Diese Maßnahmen sollen die behinderungsbedingte Benachteiligung ausgleichen, nicht jedoch die Prüfungsanforderungen qualitativ verändern.
+(4) Als geeignete Maßnahmen kommen eine besondere Organisation und eine besondere Gestaltung der Prüfung sowie die Zulassung spezieller Hilfen in Betracht.
+§ 15  Zulassung zur Prüfung
+(1) Zur Prüfung ist zugelassen, wer
+  1. zu Beginn der Prüfung Schülerin oder Schüler des jeweiligen Bildungsgangs ist,
+  2. kein mit „ungenügend“ abgeschlossenes Fach oder Lernfeld im zweiten Ausbildungsjahr hat,
+  3. einen Notendurchschnitt nach Absatz 2 von 4,0 oder besser aufweist und
+  4. erfolgreich am Praktikum nach § 5 teilgenommen hat.
+Über Ausnahmen entscheidet der Prüfungsausschuss.
+(2) Zur Ermittlung der Durchschnittsnote werden die Noten der abgeschlossenen Lernfelder und Fächer entsprechend ihres Stundenumfangs gemäß der Stundentafel gewichtet.
+(3) Die Entscheidung über die Nichtzulassung zur Prüfung wird in der ersten Prüfungskonferenz nach § 18 getroffen und der Schülerin oder dem Schüler schriftlich mitgeteilt.
+§ 16  Festlegungen zur Prüfung
+(1) Spätestens zu Beginn des letzten Ausbildungshalbjahres legt die Senatorin oder der Senator für Kinder und Bildung auf Vorschlag der Schule fest, aus welchen vier Lernfeldern und Fächern sich der schriftliche und der praktische Teil der Prüfung zusammensetzen sollen. Schulen mit gleichem Bildungsgang einigen sich auf die gleichen vier Lernfelder und Fächer.
+(2) Die Entscheidungen über die Festlegungen zur Prüfung werden den Prüflingen unverzüglich zur Kenntnis gegeben.
+§ 17  Vornote
+Die Vornote wird auf Grundlage der Notenskala gemäß § 20 aus den in Prozentwerten beurteilten Leistungen im Bildungsgang in den Lernfeldern und Fächern nach § 13 Absatz 1 ermittelt. Sie ergibt sich aus den nach Stundenumfang gewichteten Prozentwerten der abgeschlossenen Lernfelder sowie dem jeweils letzten Prozentwert der abgeschlossenen Fächer des berufsübergreifenden Lernbereichs. Das Ergebnis wird auf eine Stelle nach dem Komma geschnitten.
+§ 18  Erste Prüfungskonferenz
+(1) Spätestens am dritten Unterrichtstag vor Beginn des ersten Prüfungsteils tritt der Prüfungsausschuss zur ersten Prüfungskonferenz zusammen.
+(2) In dieser Prüfungskonferenz beschließt der Prüfungsausschuss auf Vorschlag der Fachlehrerinnen und Fachlehrer die Vornote.
+(3) Auf der Grundlage der Zulassungsvoraussetzungen nach § 15 trifft der Prüfungsausschuss die Entscheidung über die Zulassung zur Prüfung.
+(4) Spätestens am zweiten Unterrichtstag vor Beginn des ersten Prüfungsteils wird dem Prüfling die Vornote mitgeteilt.
+§ 19  Durchführung der Prüfung
+(1) Die Prüfung erstreckt sich auf die nach den §§ 13 und 16 festgelegten Lernfeldern und Fächern. Die Gesamtdauer der Prüfung beträgt mindestens 12 Zeitstunden. Die Dauer der schriftlichen Prüfung beträgt mindestens acht Zeitstunden. Die Dauer der praktischen Prüfung beträgt mindestens vier Zeitstunden.
+(2) Die Schulleitung reicht bei der Senatorin oder dem Senator für Kinder und Bildung spätestens bis zum Ende des ersten Schulhalbjahres des zweiten Ausbildungsjahres zwei autorisierte Prüfungsvorschläge mit jeweils einem schriftlichen und einem praktischen Teil in einer zuvor abgesprochenen und gegen Missbrauch geschützten Form ein. Zu allen Aufgabenvorschlägen gehören die Angabe der Bearbeitungsdauer und eine genaue Beschreibung der vom Prüfling erwarteten Leistung (Erwartungshorizont) einschließlich der Angabe von Bewertungskriterien. Aus diesen Vorschlägen wählt die Senatorin oder der Senator für Kinder und Bildung einen Prüfungsvorschlag aus. Wenn der Senatorin oder dem Senator für Kinder und Bildung die Prüfungsvorschläge teilweise oder ganz änderungsbedürftig oder ungeeignet erscheinen, kann sie oder er neue Prüfungsvorschläge anfordern.
+(3) Die Vorbereitungen für die Durchführung der Prüfung sind so zu treffen, dass die Prüfungsaufgaben den Prüflingen nicht vor der Prüfung bekannt werden.
+(4) Die Zeit für die Bearbeitung der Prüfungsaufgaben beginnt unmittelbar, nachdem die Prüfungsaufgaben bekanntgegeben und beigefügte Texte gelesen worden sind.
+(5) Die Prüfung findet unter Aufsicht statt.
+(6) Die Prüfungsarbeiten werden vom Mitglied des Prüfungsausschusses nach § 12 Absatz 1 Nummer 3 als Referentin oder Referent beurteilt und benotet. Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses bestellt für jeden Prüfungsteil eine weitere Fachlehrerin oder einen weiteren Fachlehrer als Korreferentin oder Korreferenten. Diese oder dieser beurteilt und benotet die Prüfungsarbeiten ebenfalls. Stimmen die erteilten Noten nicht überein, entscheidet der Prüfungsausschuss.
+§ 20  Noten
+(1) Alle nach dieser Verordnung zu erteilenden Noten richten sich nach der Notenskala der Zeugnisordnung und dem für berufliche Vollzeit-Bildungsgänge festgelegten Notenschlüssel:
+1
+2
+3
+4
+5
+6
+ab 85 Prozent
+ab 73 Prozent
+ab 59 Prozent
+ab 45 Prozent
+ab 27 Prozent
+unter 27 Prozent
+sehr gut
+gut
+befriedigend
+ausreichend
+mangelhaft
+ungenügend
+(2) Auf der Grundlage der Prozentwerte des Notenschlüssels werden die Vornoten, die Noten der Prüfung und die Endnoten gebildet.
+§ 21  Ergebnis des Prüfungsblocks
+(1) Der Prüfungsblock umfasst den schriftlichen und praktischen Teil der Prüfung nach § 10. Die Note des schriftlichen Prüfungsteils und die Note des praktischen Prüfungsteils fließen zu gleichen Anteilen in die Note des Prüfungsblocks ein.
+(2) Der Prüfungsblock ist nicht bestanden, wenn
+  1. die Bewertung der Leistungen eines Prüfungsteils „ungenügend“ lautet oder
+  2. die Bewertung der Leistungen in beiden Prüfungsteilen „mangelhaft“ lautet oder
+  3. die Bewertung der Leistungen in der Prüfung in einem Prüfungsteil „mangelhaft“ lautet und ein Ausgleich für diesen Prüfungsteil nicht gegeben ist; ein Ausgleich ist nur gegeben, wenn die Bewertung im anderen Prüfungsteil mindestens „befriedigend“ lautet.
+In allen anderen Fällen ist die Prüfung in den Fächern des Prüfungsblocks bestanden.
+§ 22  Zweite Prüfungskonferenz, Ergebnis der Prüfung
+(1) Der Prüfungsausschuss beschließt in der zweiten Prüfungskonferenz die Note des Prüfungsblocks, die Endnote der Prüfung und das Ergebnis der Prüfung. Die Endnote der Prüfung ergibt sich aus den Prozentwerten der Vornote und den Prozentwerten der Note des Prüfungsblocks. Die Prozentwerte der Vornote werden mit zwei Dritteln und die Prozentwerte der Note des Prüfungsblocks mit einem Drittel gewichtet. Die Ermittlung der Endnoten erfolgt auf der Grundlage der nach § 20 in Prozentwerten beurteilten Leistungen.
+(2) Die Vorsitzende oder der Vorsitzende des Prüfungsausschusses gibt dem Prüfling im Anschluss an die zweite Prüfungskonferenz die Noten der einzelnen Prüfungsteile sowie das Ergebnis der Prüfung bekannt. Das Ergebnis der Prüfung lautet „bestanden“ oder „nicht bestanden“.
+(3) Hat der Prüfling die Prüfung bestanden, erhält er ein Abschlusszeugnis mit der Berechtigung, die Berufsbezeichnung
+  1. Staatlich geprüfte Biologisch-technische Assistentin/Staatlich geprüfter Biologisch-technischer Assistent mit dem Schwerpunkt Biochemie
+  2. Staatlich geprüfte Chemisch-technische Assistentin/Staatlich geprüfter Chemisch-technischer Assistent
+  3. Staatlich geprüfte Gestaltungstechnische Assistentin/Staatlich geprüfter Gestaltungstechnischer Assistent mit dem Schwerpunkt Grafik
+  4. Staatlich geprüfte Informationstechnische Assistentin/Staatlich geprüfter Informationstechnischer Assistent mit dem Schwerpunkt Informations- und Netzwerksystemtechnik
+  5. Staatlich geprüfte Mathematisch-technische Assistentin/Staatlich geprüfter Mathematisch-technischer Assistent mit dem Schwerpunkt Künstliche Intelligenz und Wirtschaftsinformatik
+  6. Staatlich geprüfte kaufmännische Assistentin/Staatlich geprüfter kaufmännischer Assistent mit dem Schwerpunkt Fremdsprachen
+  7. Staatlich geprüfte kaufmännische Assistentin/Staatlich geprüfter kaufmännischer Assistent mit dem Schwerpunkt Informationsverarbeitung zu führen.
+Hat der Prüfling die Prüfung nicht bestanden und verlässt er die Schule, erhält er ein Abgangszeugnis. Form und Inhalt der Zeugnisse legt die Senatorin oder der Senator für Kinder und Bildung fest.
+§ 23  Wiederholung der Prüfung
+(1) Ein Prüfling, der die Prüfung nicht bestanden hat, kann sie einmal wiederholen. Die Senatorin oder der Senator für Kinder und Bildung kann auf Antrag eine zweite Wiederholung der Prüfung gestatten, wenn ihr Bestehen hinreichend wahrscheinlich ist.
+(2) Die Wiederholung findet im Rahmen der nächstfolgenden Prüfung statt. Bis zum Prüfungstermin nimmt die Schülerin oder der Schüler am Unterricht des letzten Ausbildungsjahres teil.
+§ 24  Täuschung und Behinderung
+(1) Versucht ein Prüfling, das Ergebnis der Prüfung durch Täuschung zu beeinflussen, so ist die gesamte Prüfung für nicht bestanden zu erklären. In leichteren Fällen ist die betroffene Teilleistung für nicht bestanden zu erklären und mit der Note „ungenügend“ zu bewerten.
+(2) Behindert ein Prüfling durch sein Verhalten die Prüfung so schwerwiegend, dass es nicht möglich ist, seine Prüfung oder die anderer Prüflinge ordnungsgemäß durchzuführen, so kann er von der weiteren Prüfung ausgeschlossen werden. Die gesamte Prüfung ist dann für nicht bestanden zu erklären.
+(3) Der Prüfling hat das Recht, solange weiter an der Prüfung teilzunehmen, bis der Prüfungsausschuss, der unverzüglich einzuberufen ist, die notwendigen Entscheidungen nach Absatz 1 oder 2 getroffen hat. Vor seiner Entscheidung hat der Prüfungsausschuss den Prüfling anzuhören.
+§ 25  Behinderung
+(1) Behindert ein Prüfling durch sein Verhalten einen Prüfungsteil so schwerwiegend, dass es den an der Prüfung Beteiligten nicht möglich ist, die Prüfung ordnungsgemäß durchzuführen, kann der Prüfling von der entsprechenden Teilprüfung ausgeschlossen werden.
+(2) Wurde ein Prüfling von der Teilprüfung ausgeschlossen, ist dies dem Prüfungsausschuss unverzüglich nach der Teilprüfung mitzuteilen. Der Prüfungsausschuss tritt schnellstmöglich, in jedem Fall aber vor der nächsten Teilprüfung, zusammen, um über die Behinderung zu beraten und zu entscheiden. Vor seiner Entscheidung hat der Prüfungsausschuss den Prüfling anzuhören.
+(3) Der Prüfungsausschuss entscheidet, ob der Prüfling die Prüfung so schwerwiegend behindert hat, dass er von der weiteren Prüfung ausgeschlossen und die gesamte Prüfung für nicht bestanden erklärt wird oder ob ausschließlich der Prüfungsteil für nicht bestanden erklärt wird, in dem die Behinderung stattgefunden hat. Stellt der Prüfungsausschuss keine Behinderung der Prüfung fest, bestimmt die Vorsitzende oder der Vorsitzende des Prüfungsausschusses einen neuen Termin für die Teilprüfung für den ausgeschlossenen Prüfling.
+§ 26  Versäumnis
+(1) Versäumt ein Prüfling eine Teilprüfung aus Gründen, die er nicht zu vertreten hat, ist unverzüglich ein Nachweis dafür zu erbringen. Die oder der Vorsitzende des Prüfungsausschusses entscheidet unverzüglich, ob das Versäumnis als entschuldigt gilt. Gilt das Versäumnis als entschuldigt, bestimmt die Vorsitzende oder der Vorsitzende des Prüfungsausschusses einen neuen Termin für die versäumte Teilprüfung.
+(2) Versäumt ein Prüfling aus von ihm zu vertretenden Gründen einen Prüfungstermin, entscheidet der Prüfungsausschuss über die Schwere des Versäumnisses. Der Prüfling ist vor der Entscheidung anzuhören. Trifft der Prüfungsausschuss die Entscheidung, dass es sich um einen leichteren Fall handelt, ist der entsprechende Prüfungsteil zu wiederholen. In allen anderen Fällen sind die deswegen nicht erbrachten Leistungen mit „ungenügend“ zu bewerten.
+(3) Versäumt ein Prüfling aus von ihm zu vertretenden Gründen mehr als einen Prüfungsteil, ist die gesamte Prüfung für nicht bestanden zu erklären.
+§ 27  Niederschriften
+(1) Über alle mit der Prüfung zusammenhängenden Beratungen und Prüfungsvorgänge werden Niederschriften angefertigt.
+(2) Die Niederschriften sind von der Protokollführerin oder vom Protokollführer und von der Vorsitzenden oder vom Vorsitzenden des Prüfungsausschusses oder des Teilprüfungsausschusses zu unterzeichnen.
+(3) Die Niederschrift über die Prüfung führt die aufsichtführende Lehrerin oder der aufsichtführende Lehrer. Sie soll insbesondere enthalten:
+  1. den Sitzplan der Prüflinge,
+  2. die Namen der aufsichtführenden Lehrerinnen und Lehrer und die jeweiligen Aufsichtszeiten,
+  3. den Beginn der Aufgabenstellung und der Arbeitszeit,
+  4. den letztmöglichen Zeitpunkt für die Abgabe der Arbeit,
+  5. die Zeiten, zu denen einzelne Prüflinge den Raum verlassen und zurückkehren,
+  6. die Zeiten, zu denen die Prüflinge ihre Arbeiten abgeben,
+  7. Schülerinnen und Schüler mit Nachteilsausgleichen und deren Umfang,
+  8. besondere Vorkommnisse.
+(4) Den Niederschriften ist eine Liste beizufügen, die die Vornote, die Note des Prüfungsblocks, die Endnote der Prüfung sowie das Ergebnis der Prüfung enthält.
+Teil 3  Schlussbestimmungen
+§ 28  Übergangsbestimmung
+Auf Bildungsgänge, die vor dem 1. August 2026 begonnen haben, ist die Verordnung über die Berufsfachschule für Assistentinnen und Assistenten in der bis zum 31. Juli 2026 geltenden Fassung weiter anzuwenden.
+§ 29  Inkrafttreten, Außerkrafttreten
+(1) Diese Verordnung tritt mit Wirkung vom 1. August 2026 in Kraft.
+(2) Gleichzeitig tritt die Verordnung über die Berufsfachschule für Assistenten vom 24. April 2019 (Brem.GBl. 2019, S. 297 - 223-o-5a) außer Kraft.
diff --git a/src/test/resources/sampledata/Bremen/BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf b/src/test/resources/sampledata/Bremen/BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf
new file mode 100644
index 0000000..7bf58d7
--- /dev/null
+++ b/src/test/resources/sampledata/Bremen/BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf
Binary files differ
diff --git a/src/test/resources/sampledata/Bremen/SOURCES b/src/test/resources/sampledata/Bremen/SOURCES
new file mode 100644
index 0000000..e0425cc
--- /dev/null
+++ b/src/test/resources/sampledata/Bremen/SOURCES
@@ -0,0 +1,100 @@
+Beispieldaten Bremen — Herkunft und Aufbereitung
+================================================
+
+1. Änderungsdokument
+   BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf
+   Gesetzblatt der Freien Hansestadt Bremen 2026 Nr. 87, verkündet am
+   20. August 2026, S. 573: Änderung der Verordnung über die Berufsfachschule
+   für technische und kaufmännische Assistentinnen und Assistenten vom
+   10. August 2026.
+   Bezogen über
+   https://www.gesetzblatt.bremen.de/fastmedia/218/2026_08_20_GBl_Nr_0087_signed.pdf
+   (abgerufen am 27.08.2026). Das Gesetzblatt liegt vollständig und ohne
+   Anmeldung unter https://www.gesetzblatt.bremen.de/; die Heftliste
+   (`?skip=<N>&max=100`) nennt zu jedem Heft einen Hinweistext, der das
+   geänderte Werk benennt. Das Heft trägt genau eine Verkündung.
+
+2. Stammfassung (vor der Änderung)
+   AssBerFSchulV-BR-alt.txt
+   Verordnung über die Berufsfachschule für Assistentinnen und Assistenten vom
+   24. April 2019 (Brem.GBl. 2019, S. 297 – 223-o-5a), Gesamtausgabe in der
+   Gültigkeit vom 01.03.2019 bis 20.08.2026.
+   Entnommen dem Transparenzportal Bremen:
+   https://www.transparenz.bremen.de/sixcms/detail.php?gsid=bremen2014_tp.c.130920.de
+   &asl=bremen203_tpgesetz.c.55340.de&template=20_gp_ifg_meta_detail_d
+   (abgerufen am 27.08.2026).
+
+   Zum Portal: transparenz.bremen.de ist — nach BRAVORS (Brandenburg) und
+   recht.nrw.de — das dritte Landesportal, das einer Skriptabfrage gewöhnliches,
+   serverseitig gesetztes HTML liefert, und das erste außerhalb Brandenburgs,
+   das jede *frühere* Gesamtausgabe einzeln adressierbar führt. Der Weg dahin:
+   die Vorschrift über `…/metainformationen/<Titel-Slug>-<Id>?asl=…&template=
+   20_gp_ifg_meta_detail_d` aufrufen, von dort die Schaltfläche „Frühere
+   Fassungen“ (`…&template=20_gp_ifg_meta_fassungen_d`); sie listet jede Fassung
+   mit ihrem Geltungszeitraum und einer eigenen `gsid`. Die Änderungshistorie
+   steht unter `…&template=20_gp_ifg_meta_historie_d`. Vor- und Nachfassung
+   stammen deshalb aus derselben Quelle.
+
+   Aufbereitung (Skript `clean_hb.py`, im Arbeitsverzeichnis der Welle): Der
+   Text steht je Einheit in einem `<div class="jgwsAiZDoc">`; `<h3>`/`<h4>` mit
+   `<br>` tragen Gliederung und Normkopf („Teil 1␣␣Ausbildung“, „§ 1␣␣Titel“),
+   `<p>` je Absatz, `<dl>/<dt>/<dd>` die Aufzählungen, die je Ebene um zwei
+   Stellen eingerückt werden. Der Kopf (Titel, Klammerzusatz mit der
+   juris-Abkürzung, Datumszeile, Fundstelle) ist von Hand gesetzt; die
+   Eingangsformel und das nichtamtliche Inhaltsverzeichnis des Portals sind
+   fortgelassen. Der Titel ist der *amtliche von 2019* — das Portal führt
+   Vorfassungen unter dem heutigen Namen, und der Einleitungssatz des Heftes
+   zitiert den alten.
+
+3. Nachfassung (nach der Änderung), nur als Prüfmaßstab
+   AssBerFSchulV-BR-neu.txt
+   Dieselbe Verordnung in der ab dem 21. August 2026 geltenden Fassung, aus der
+   aktuellen Gesamtausgabe desselben Portals
+   (https://www.transparenz.bremen.de/metainformationen/verordnung-ueber-die-
+   berufsfachschule-fuer-technische-und-kaufmaennische-assistentinnen-und-
+   assistenten-vom-24-april-2019-373512?asl=bremen203_tpgesetz.c.55340.de
+   &template=20_gp_ifg_meta_detail_d, Stand 27.08.2026), mit demselben Skript
+   aufbereitet.
+
+4. Was der Fall trägt
+   - Die Neufassung des *Namens* der Verordnung („Der Name der Verordnung wird
+     wie folgt gefasst“) — die Überschrift des Werkes selbst.
+   - Die bloße Aufzählungsmarke als ganze Stellenangabe („In e) wird das Wort …
+     ersetzt“, „f) wird gestrichen“) und die Marke mit Schlusspunkt („Nummer 1.
+     wird wie folgt gefasst“).
+   - „werden die Worte … durch die Worte … *geändert*“ statt „ersetzt“.
+   - Die Anfügung als „Absatz 1 wird am Ende *um Satz 2 ergänzt*“ — die
+     genannte Nummer bestimmt den Platz, nicht das Ende.
+   - Das *benannte* Satzzeichen: „das Satzzeichen „Punkt“ wird aufgehoben und
+     folgendes angefügt: „…““ — der Sache nach die Ersetzung des Schlusszeichens
+     durch den angefügten Wortlaut.
+   - Zwei nicht geschlossene Zitate in einem Abschnitt (Nummern 8 a und 13).
+     Beide zusammen sind der Prüfstein der Aufzählungs-Zitatgrenze: Sie muss
+     auch dann greifen, wenn der Rest des Abschnitts seinerseits noch ein Zitat
+     offen lässt.
+   - Der Kolumnentitel („Nr. 87 Gesetzblatt der Freien Hansestadt Bremen vom
+     20. August 2026 574“) steht im Inhaltsstrom und klebt am Seitenumbruch
+     hinter dem letzten Satz der Vorseite.
+
+5. Benannte Abweichungen von der amtlichen Nachfassung
+   § 26 fehlt: Die Nummer 18 des Heftes verbindet eine Umnummerierung mit einer
+     Neufassung — „Der bisherige § 25 wird § 26 und wie folgt neu gefasst:“ —,
+     öffnet deren Zitat aber gar nicht erst; der neue Wortlaut steht ohne
+     Anführungszeichen da. Der Befehl bleibt darum unerkannt und § 26 ungesetzt.
+     Geraten wird nicht.
+   § 22: Die Nummer 15 f schreibt „Im letzten Satz werden hinter dem Wort
+     „Senatorin“ die Worte „oder der Senator“ eingefügt“. Sie nennt keinen
+     Absatz; § 22 hat deren drei, und jeder hat einen letzten Satz. Gemeint ist
+     ersichtlich der Absatz 3, von dem die Buchstaben b bis e handeln — der
+     Befehl selbst sagt es nicht, und der laufende Zusammenhang eines
+     Nachbarpunktes ist keine Stellenangabe. Die Auflösung meldet Mehrdeutigkeit.
+   § 29: Die Nummer 21 verteilt den neuen Wortlaut auf zwei Unterpunkte, die je
+     nur aus einem Zitat bestehen („a) „(1) …““, „b) „(2) …““), ohne dass diese
+     ein Verb trügen. Die Umnummerierung des bisherigen § 28 zu § 29 wird
+     vollzogen, die Neufassung nicht.
+
+   Nicht mitgeführt sind die *Anlagen* (Stundentafeln). Sie sind Tabellen, für
+   die der kanonische Klartext keine Form hat; und das Heft setzt an die Stelle
+   der einen Anlage der Vorfassung zwei neue, ohne dass ein Änderungsbefehl das
+   anordnete — ein Mangel der Vorlage, der sich nicht anwenden lässt. Beide
+   Klartextfassungen enden deshalb mit dem letzten Paragraphen.
diff --git a/src/test/resources/sampledata/Landesrecht-Beispiele.adoc b/src/test/resources/sampledata/Landesrecht-Beispiele.adoc
index 0a955ae..b699243 100644
--- a/src/test/resources/sampledata/Landesrecht-Beispiele.adoc
+++ b/src/test/resources/sampledata/Landesrecht-Beispiele.adoc
@@ -104,6 +104,18 @@
 Stilblatt erzeugt, und an ehemaligen Trennstellen führt das Portal vereinzelt *Steuerzeichen*
 (U+0002) mit. Voller Akzeptanzfall (4/4 Befehle, alle 24 Normen).
 
+|Bremen
+|`Bremen/BremGBl-2026-87_BerufsfachschulVO-AendVO.pdf` — Brem.GBl. 2026 Nr. 87 vom 20.08.2026,
+S. 573 (Änderung der Verordnung über die Berufsfachschule für technische und kaufmännische
+Assistentinnen und Assistenten vom 10.08.2026)
+|Einspaltiges, sauberes Blatt; die Eigenheiten liegen in der *Befehlssprache*: die Neufassung des
+*Namens* der Verordnung, die bloße Aufzählungsmarke als Stellenangabe („In e) …“, „f) wird
+gestrichen“), die Marke mit Schlusspunkt („Nummer 1. wird wie folgt gefasst“), „durch die Worte …
+*geändert*“ statt „ersetzt“, die Anfügung „am Ende um Satz 2 ergänzt“ und das *benannte*
+Satzzeichen („das Satzzeichen „Punkt“ wird aufgehoben und folgendes angefügt“). Dazu *zwei* nicht
+geschlossene Zitate in einem Abschnitt. Voller Belegfall; Vor- *und* Nachfassung stammen aus
+demselben offenen Portal (`transparenz.bremen.de`, Schaltfläche „Frühere Fassungen“).
+
 |Hamburg
 |`Hamburg/HmbGVBl-2026-17_GutachterausschussVO-AendVO.pdf` — HmbGVBl. Teil I Nr. 17 vom
 26.05.2026, S. 147 (Verordnung zur Änderung der Verordnung über den Gutachterausschuss für
@@ -190,6 +202,20 @@
 überzähliges Anführungszeichen aus dem Änderungsgesetz; § 93 LMG NRW: zusätzlich die Wörter
 „Film (“ gestrichen) — ÄndGgner wendet dort den Wortlaut an. Damit ist das Heft GV. NRW. 7/2026
 vollständig belegt.
+* *Bremen* ist umgesetzt (`EndToEndTest.berufsfachschulVOBremen`): 41 Befehle gelesen, 37
+  angewandt; 26 von 29 Normen gleichen der amtlichen Nachfassung, eine fehlt. Der Fall hat sechs
+  allgemeine Funde gebracht: Die *Aufzählungs-Zitatgrenze* darf nicht verlangen, dass der Rest des
+  Abschnitts ausbalanciert zurückbleibt — ein Abschnitt kann mehrere offene Zitate tragen, und
+  jedes ist an seiner eigenen Grenze zu schließen; sie prüft nunmehr, dass kein schließendes
+  Anführungszeichen ohne öffnendes zurückbleibt. Eine *unvollendet endende Neufassung*
+  (Doppelpunkt, Komma) meint den Vordersatz allein und lässt die Untergliederung stehen. Das
+  Zitat des *ersten* Satzes trägt die Absatzbezeichnung mit, die dem Absatz gehört und nicht dem
+  Satz. Ein *Platzhalter* „(weggefallen)“ hält nur Platz innerhalb desselben Blockes — die
+  Buchstaben einer anderen Nummer gehen ihn nichts an. Eine angefügte Einheit, die ihre *Nummer*
+  nennt, tritt an den genannten Platz und nicht ans Ende. Und ein Umbruch mitten im Satz ist
+  Satzspiegel: Endet die vorige Zeile auf ein Binde- oder Verhältniswort, so wird
+  zusammengezogen. Dazu ein aufgedeckter stiller Mangel: „*hinter* dem Wort“ war zwar im Muster
+  zugelassen, wurde aber nirgends geprüft — die Wörter traten vor den Anker statt dahinter.
 * *Hamburg* ist umgesetzt (`EndToEndTest.gutachterausschussVOHamburg`): 21 Befehle gelesen,
   17 angewandt; zehn von vierzehn Normen gleichen der amtlichen Nachfassung. Der Fall hat sechs
   allgemeine Funde gebracht: die Dezimalgliederung der Befehle; die §-Teilung eines Heftes, das
@@ -309,7 +335,7 @@
   Baden-Württemberg jede Fassung datierbar ausgeben, fehlt dort. Ohne Vorfassung ist kein
   Akzeptanzfall möglich, sondern nur die Prüfung bis zur Befehlserkennung. Ein Ausweg wäre, die
   Vorfassung aus den *Einzelnormen* mit ihren Stichtagen zusammenzusetzen.
-* Bremen, Mecklenburg-Vorpommern, Saarland, Sachsen-Anhalt: noch nicht erfasst.
+* Mecklenburg-Vorpommern, Saarland, Sachsen-Anhalt: noch nicht erfasst.
 
 == Wo weitermachen
 
@@ -320,8 +346,8 @@
 Klartext aus. Ein weiteres Land kostet damit Stammfassung, Heft und Nachfassung — keinen eigenen
 Prüfcode mehr. Nach absteigendem Nutzen:
 
-. *Weitere Länder erfassen* — Bremen, Mecklenburg-Vorpommern, Saarland, Sachsen-Anhalt. Die
-  Beschaffungswege sind für alle vier geprüft (26.08.2026):
+. *Weitere Länder erfassen* — Mecklenburg-Vorpommern, Saarland, Sachsen-Anhalt (Bremen ist seit
+  Welle 25 erfasst). Die Beschaffungswege sind für alle geprüft (26./27.08.2026):
 +
 --
 Mecklenburg-Vorpommern:: Das Gesetzblatt liegt *frei und skriptlesbar* unter
@@ -336,8 +362,15 @@
 Ursprungsfassung aus dem Gesetzblatt. Der geprüfte Fall (Gesetz zur Änderung der Landesbauordnung
 M-V und des Architekten- und Ingenieurgesetzes, GVOBl. Nr. 16 vom 11.06.2026) taugt dafür nicht:
 Beide Stammgesetze sind vielfach geändert.
-Bremen:: `transparenz.bremen.de` antwortet einer Skriptabfrage mit gewöhnlichem HTML (Status 200,
-44 kB) — das zweite offene Portal nach BRAVORS. Der Weg ist damit frei; er ist nur noch zu gehen.
+Bremen:: *Gegangen* (Welle 25). `transparenz.bremen.de` antwortet einer Skriptabfrage mit
+gewöhnlichem HTML und führt — als drittes offenes Portal nach BRAVORS und recht.nrw.de, und als
+erstes außerhalb Brandenburgs — jede *frühere* Gesamtausgabe einzeln adressierbar: Vorschrift über
+`…/metainformationen/<Slug>-<Id>?asl=…&template=20_gp_ifg_meta_detail_d`, von dort „Frühere
+Fassungen“ (`…&template=20_gp_ifg_meta_fassungen_d`) und „Änderungshistorie“
+(`…&template=20_gp_ifg_meta_historie_d`). Die Hefte des Gesetzblatts liegen unter
+`gesetzblatt.bremen.de/fastmedia/218/<JJJJ_MM_TT>_GBl_Nr_<NNNN>_signed.pdf`, die Heftliste
+(`gesetzblatt.bremen.de/?skip=<N>&max=100`) nennt zu jedem den geänderten Gegenstand. Siehe
+`Bremen/SOURCES`.
 Saarland und Sachsen-Anhalt:: unverändert ohne Vorfassungen (siehe „Noch offen“); dort bleibt es
 bei der Prüfung bis zur Befehlserkennung, es sei denn, die Einzelnormen mit ihren Stichtagen
 tragen.
@@ -420,5 +453,6 @@
 Stammgesetze; für Berlin die vollständige Anwendung des Artikels 2, fünf von sechs
 Befehlen des Artikels 1 und die drei benannten Abweichungen von der Nachfassung; für
 Baden-Württemberg einunddreißig von siebenunddreißig Befehlen und die zwei benannten
-Abweichungen. Wer eine dieser Zahlen
+Abweichungen; für Bremen einundvierzig gelesene und siebenunddreißig angewandte Befehle, die
+fehlende Norm und die zwei benannten Abweichungen. Wer eine dieser Zahlen
 ändern muss, sollte den Grund im Test vermerken.
