Below you'll find the definition of the grammar production class-head in [class]/1:
class-key attribute-specifier-seqopt class-head-name
A class-specifier whose class-head omits the class-head-name
defines an unnamed class. [ Note: An unnamed class thus can’t be
final. —end note ]
No. If you did, then there would be ambiguity.
class final could mean a named class called
final or an unnamed class that uses
final as the virtual specifier.
Because of how the grammar is defined,
class final always means a class named
final. The grammar is unambiguous. The bracketed notation is not normative text; it simply explains the reason for the two definitions.
Now, you could define the grammar a different way to achieve the same effect, by adding another term:
class-key attribute-specifier-seqopt class-head-name-stuffopt base-clauseopt