generating a sequence of values with differents formats and lengh of rows in PostgreSQL

I want to find documentno missing from a sequence of values from table with differents formats and lengh. For example https://dbfiddle.uk/?rdbms=postgres_12&fiddle=0d3a6a647c6ef2a9063c7f3289446998

I want to find the missing documentno like : ‘AGB/2021/2051′,’AGB/2021/2052′,’AGB/2021/2053′,’AGB/2021/2054′, PROFS / 2021 / 02051_P, PROFS / 2021 / 02052_P, PROFS / 2021 / 02053_P, PROFS / 2021 / 02054_P ,’BABA/2021/02057’, ‘BABA/ 2021/02058’, ‘BABA / 2021/02059, and ‘MAMAMA/2021/0206011′,’MAMAMA/2021/0206012′,’MAMAMA/2021/0206013’

CREATE TABLE c_order (
“order_id” VARCHAR(22),
“documentno” VARCHAR(20)
);
INSERT INTO c_order
(“order_id”, “documentno”)
VALUES
(‘100001119’, ‘AGB/2021/2050’),
(‘100001124′ ,’AGB/2021/2055’),
(‘100001126′ ,’PROFS/2021/02060’),
(‘100001129′ ,’PROFS/2021/02065’),
(‘100001120’, ‘BABA/2020/02056_p’),
(‘100001127′ ,’BABA/2020/02060_p’),
(‘100001118′ ,’MAMAMA/2021/0206010’),
(‘100001122′ ,’MAMAMA/2021/0206014’)

Query used

with cte as (
select left(documentno,13) lpart,
regexp_replace(split_part(documentno, ‘/’, 3), ‘(^0-9)’, ”, ‘g’)::int as num
from c_order
), minmax as (
select lpart, min(num) minpart, max(num) maxpart
from cte
group by lpart
)
select lpart||t.doc_no as missing_doc_no
from minmax m
cross join generate_series(minpart, maxpart) as t(doc_no)
where not exists (select *
from c_order c
where regexp_replace(split_part(c.documentno, ‘/’, 3), ‘(^0-9)’, ”, ‘g’)::int = t.doc_no)

This query generates a documentno but not in good format for all rows considering lengh of each row.

I want a query that work for all missing documentno.