program ExtractBracketedContent;
const
InputText = 'This is a [sample] string with [multiple] square brackets.';
procedure ExtractBracketedText(const text: string);
var
i: Integer;
inside: Boolean;
buffer: string;
begin
inside := False;
buffer := '';
for i := 1 to Length(text) do
begin
case text[i] of
'[':
begin
inside := True;
buffer := '';
end;
']':
begin
if inside then
begin
Writeln(buffer);
buffer := '';
inside := False;
end;
end;
else
if inside then
buffer := buffer + text[i];
end;
end;
end;
begin
ExtractBracketedText(InputText);
end.
(*
run:
sample
multiple
*)