js reg exp помочь дописать регулярку

мне нужно написать следующую регулярку формат ввода такой

> name:
ATGC

то есть сначала пишем этот знак >, далее пробел, далее имя из любых буковок, далее двоеточие, перенос строки и дальше уже последовательность из таких букв (ATGC), причем такой формат должен повторяться, то есть я могу в таком формате написать сколь угодно последовательность

> name:
ATGC
> name2:
ATCGC
> name3:
TAATGC

Я написал такую регулярку

!/^(> )+[A-Za-z0-9-]+:+\n+[ATCGatcg]{1,}$/

она работает, но только с одной последовательностью, хотя я вроде указываю кватификатор {1,}, но это не помогает я пишу это

> name:
ATGC

и все ок, если начинаю писать еще одну последовательность и дописываю её до конца, то ошибка в общем нужно помочь поставить правильно квантификатор, чтобы я мог писать так:

> name:
ATGC
> name2:
ATGC
> name3:
ATGC

но это естестна не все поле должно правильно отрабатывтаь если мы записали в таком формате

> name:
ATGC

и в таком

ATCGATAGCATGCTACTGAC

это тоже уже есть, это делается просто [ATCGatcg] то есть уже без имени и без ">" при этом регулярка должна так работать, чтобы я мог ввести либо одно либо другое, но не вместе то есть это допустимо

> name:
ATGC
> name:
ATGC

отдельно это тоже допустимо

ATCGATAGCATGCTACTGAC

а вот если вместе

ATCGATAGCATGCTACTGAC
> name:
ATGC

то уже ошибка, мне кажется это самое сложное крч я сделаль вот так, работает как надо, но меня смущают эти if-ы хотелос ьбы в одно регулярку все сделать(

  if (
    /^(> [-A-Za-z0-9]+:\r?\n[ATCGatcg]+($|\r?\n))+$/.test(e.target.value)
  ) {
    setError(false);
  } else if (/^[ATGCatgc]+$/.test(e.target.value)) {
    setError(false);
  } else {
    setError(true);
  }

Ответы (1 шт):

Автор решения: Qwertiy

var s = `> name:
ATGC
> name2:
ATGC
> name3:
ATGC`

console.log(/^(> [-A-Za-z0-9]+:\r?\n[ATCGatcg]+($|\r?\n))+$/.test(s));

но хотелось бы чтобы просто ACTGATCCTGA тоже работал

var strs = [
`ACTGATCCTGA`
,
`> name:
ATGC
> name2:
ATGC
> name3:
ATGC`
,
`ACTGATCCTGA
> name:
ATGC`
]

for (var s of strs) {
  console.log(s + '\n' +
    /^((> [-A-Za-z0-9]+:\r?\n[ATCGatcg]+($|\r?\n))+|[ATCGatcg]+)$/.test(s)
  );
}
.as-console-wrapper.as-console-wrapper { max-height: 100vh }

→ Ссылка