Perhaps I'm not understanding, but given a list of strings, perhaps harvested from a file, this is all that's needed:
(vl-remove-if-not
'(lambda ( x ) (wcmatch (vl-string-trim " \t" x) "01`.###*"))
'(
"01 INTERIOR KEYNOTES"
""
"01.001 SCHEDULED DOOR"
"01.002 WALL PARTITION"
""
"01.100 USE PEANUT BUTTER TO CAULK WINDOW FRAME"
"01.101 TEMPERED GLASS"
""
"01.200 BLH, BLAH, BLAH"
""
"02 EXTERIOR KEYNOTES "
"..."
)
)
"01.001 SCHEDULED DOOR"
"01.002 WALL PARTITION"
"01.100 USE PEANUT BUTTER TO CAULK WINDOW FRAME"
"01.101 TEMPERED GLASS"
"01.200 BLH, BLAH, BLAH"
If you want to retain the blank lines just change the wcmatch pattern to "01`.###*,".