I claim that your ticket is valid for boarding on the earlier station, for somewhat obscure reasons.

Namely, in this particular case, the two stations are considered equivalent for tariff purposes, as can be seen in the [*Liste der gleichgestellten Tarifpunkte*](https://www.bahn.de/faq/was-ist-unter-der-tariflichen-gleichstellung-zu-verstehen-und-ist-diese-auch-bei-sparpreis-tickets-gueltig) published by Deutsche Bahn (see [this answer](https://travel.stackexchange.com/a/78430/67683) for an explanation of how to read this table). However, in itself, this only tells us that, if you had booked a ticket starting at Konstanz Hbf, you would've paid the same as you did for the ticket starting at Konstanz-Petershausen.

However, if you take into account the exact details of the ticket, I'd guess that you'll find that the ticket does give you this little bit of flexibility. To illustrate, I'll use an example from an earlier trip of mine, where I booked a Super Sparpreis Europa ticket from Braunschweig Hbf to Zwolle, but wanted to start my trip at Braunschweig-Gliesmarode. In my case, this required taking a separate regional train from Braunschweig-Gliesmarode to Braunschweig Hbf.

I reasoned as follows:
 - in the Deutsche Bahn Navigator app, the trip details are split into two tabs: Ticket and Itinerary. One would assume that you're bound to what's written on the ticket, and not to any details in only present in the itinerary.
 - the ticket listed the following:

   > **Gültigkeit**  
   > ICE Fahrkarte (Einfache Fahrt)  
   > Super Sparpreis Europa  
   > 2. Klasse  
   > 1 Person [age details elided]  
   > Von: 31.10.2023, 00:00 Uhr  
   > Bis: 02.11.2023, 03:00 Uhr
   >
   > **Verbindung**  
   > Braunschweig - Zwolle  
   > Zugbindung: ICE 754, 17:56 Uhr  
   > Via:  
   > <1080>LEHR\*H\*WUNS\*MI\*LOEH\*BUEN\*OS\*RHEI\*Bad Bentheim(Gr)<1184>Regional Train\*Hengelo

   saying that the ticket is valid during a 2-day period starting at midnight, on journeys from Braunschweig to Zwolle, as long as you make use of the ICE 754 leaving at 17:56 (which is the leg of the trip from Hannover to Osnabrück, and obey the [routing instructions](https://travel.stackexchange.com/a/132844/67683).
- notably, the ticket only lists the *Sammelbezeichnung* (collective designation) for the stations involved (see linked PDF), thus the ticket is valid whether I start my journey as Braunschweig Hbf, or Braunschweig-Gliesmarode.

Now, your case might be different, but I would assume that as long as your ticket says "Konstanz – Nürnberg" as opposed to "Konstanz-Petershausen – Nürnberg Hbf" in the Verbindung section,<sup>[1]</sup> has its validity starting at midnight and doesn't list the regional train in the Zugbindung for some reason, then you're in the clear.

The caveat is that the ultimate test of this logic is what a Deutsche Bahn employee would say, and I haven't had the opportunity of them checking my ticket at a moment that would confirm or deny my logic.<sup>[2]</sup>

Worst case, the likelihood that your ticket will get checked during these two minutes is very low. And if it does happen, you can always say "huh? the ticket doesn't differentiate between the two stations, look!" ;3

-----

<sup>[1]</sup> I suspect that this is the case when the distance traveled exceeds the distance minimum listed in *Liste der gleichgestellten Tarifpunkte*, which – in your case – is 101 km.

<sup>[2]</sup>  I did have my ticket checked at a different moment, that confirmed that a different point of flexibility – being able to use an earlier regional train than the booked – is accepted, either because it's indeed valid, or because they don't care to enforce it. In the latter case I would've expected at least a comment about my deviation from the itinerary, though.