J, 1 byte
'
Try it online!
The open quote gives, obviously, the open quote error:
|open quote
| '
| ^
|[-1] /home/runner/.code.tio
Note that, by the nature of J interpreter, the errors are printed to STDOUT, not STDERR.
When the above is run as code, it prints:
|open quote
| | '
| ^
|[-2] /home/runner/.code.tio
Then
|open quote
| | | '
| ^
|[-2] /home/runner/.code.tio
and so on. Each time the code runs, the second line is left-padded with four bytes |
, fulfilling the requirement of this challenge.
J, proper quine variant, 25 bytes
echo,~'echo,:~(,quote)'''
Try it online!
Outputs
echo,:~(,quote)'echo,:~(,quote)'
And then it outputs itself twice, on separate lines:
echo,:~(,quote)'echo,:~(,quote)'
echo,:~(,quote)'echo,:~(,quote)'
then
echo,:~(,quote)'echo,:~(,quote)'
echo,:~(,quote)'echo,:~(,quote)'
echo,:~(,quote)'echo,:~(,quote)'
echo,:~(,quote)'echo,:~(,quote)'
and so on.
The first output is a simple variant of standard J quine. The added ,:~
concatenates itself vertically, where the resulting 2D array is printed as two rows of the same string.
:^)
\$\endgroup\$