[Question]
  [
Write a quine which attempts to invert the case of as many ascii characters in the source code as possible. For example in javascript:
```
(x=function(y){return ('(x='+y+')(x)').toUpperCase();})(x)
```
* Standard quine rules apply.
* The score is given by *number of bytes in the source code* - *number of case inversions*. For example, the quine above has a score of 29.
* The program with the lowest score wins. If two programs have the same score then the shorter one wins.
  
[Answer]
# [><>](http://esolangs.org/wiki/Fish), score 479 - 479 = 0
```
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllbfppllfepeeppppgglcepppbeppppppppppplfdppedpddpgglcdppbdpfcpecpggldcppllccpbcpplfbpebppldbppcbpggcbglefgpgbeglefgpgcbglefgpgggggedglefgpgccglefgpgfdglefgpgebglefgpgecglefgpggdcglefgpgceglefgpgeeglefgpgbcglefgpgfbglefgpgcdgfefgpbdgeefgpfegdefgpccgcefgpfdgbefgpdbgaefgpppddglefgpgbcglefgpgfcglefgpgdbglefgpgdcglefgpgecglefgpgddglefgpgdbglefgplffpbfgffgefgpcbgefgefgp
```
[Try it online!](https://tio.run/##vY@7jkMxCES/dYdhSCQXSPl/ecG6uEkfCs/hjfX@vPZevzcocy15umdZxLIGHO@xJWY6kzz5csCUpVv7tJ5glmgQ0lHKegyVN8RyRQb8gRtpc07UHtBEfOp8UsEhm2E@gNs/bcZQA1hVpfJga22y47NuKiXirzXrg1/DBjhT7wn3qts1NUtKKKQ469DStPc/)
### How it works
Very few useful instructions in ><> are letters.
However, we still have the `l`, pushing the length of the stack to the stack. As such, it's possible to (very verbosely) push arbitrary values to the stack. Thus, strings can be encoded in a similar fashion to brainfuck, using `a` to increase the length of the stack, and `g` or `p` to reduce it.
As per usual quine rules, `g` is not used to read the source code itself, instead maintaining registers at locations such as`bb` and `bc` and so on.
The string encoded is the prefix:
`"r&:20&3-:&?.p48*-od0l2)?.;lllll"]"`
Which after over 7,000 instructions outputs the original string in upper case.
[Answer]
# [Gol><>](https://github.com/Sp3000/Golfish), ~~77~~ 75 - 75 = 0
```
urassssissezplzelssmzmzpssazmkqjmkrmbrrrrrtsuotlballsssssassmzpsssssbssmzpu
```
[Try it online!](https://tio.run/##HYtBEsAgCMTeCjO2VWG0rlz4PC3mlENyD7kqnghbhJ8KFJ/iRQB19QmQa3@b9qW8kg0bW5hEcgBlOI/yUYv4AA "Gol><> – Try It Online")
Based on [Bubbler's answer](https://codegolf.stackexchange.com/a/209774/76162), this goes even further by also putting the `"` at the start of the code to get a score of `0`!
### Explanation
```
ur       Move over one on the stack tape and reverse the stack
  assssissez      Push 10+16*4=74,-1+16*2=31,!(15)=0
            p     And put the 74 (J) at position 0,31
lz            Push 0 if there is anything on the stack
  e           Push 14 for later
   lssmzmz    Push 2+16*2=34, !(-1)=0, !(-1)=0
          p   Put the 34 (") at position 0,0
sss           Add 3*16 to the -1 from earlier
   az         Push !(10)=0
     mkq      Some no-ops
        J     And jump to 0,47 if the stack was initially empty
lballsssssassmzp  Put T at position 0,43
sssssbssmzpu      Put S at position 0,44
u                 Move one over on the stack again (effectively resetting the stack)
"                 Wrap, pushing everything to the stack
 r                Reverse
  .........       Put everything again
           J      But this time don't jump, since the stack is not empty
mk           Copy the bottom of the stack (u)
  rm         Push a -1 to the bottom of the stack
    brrrrr   No-ops
T   t      Finally, loop over the stack, 
 Suo       Capitalising then outputting everything until we get to the -1
```
[Answer]
## 80186+ machine code (MS-DOS .COM format), 115-115=0
It was a bit tricky to do this, as I only had access to `INC`, `DEC`, `PUSH`, certain `POP` variations, `POPA`, `IMUL`, and certain conditional jumps. Fortunately, `IMUL` could do the heavy lifting for this challenge!
I encoded the actual code that does the printing in a series of values that get multiplied together. I compute those values (which get truncated to 16-bit values), store them on the stack which I moved to be just above the code, and then jump to the generated code to print the program's code in the opposite case.
Machine code:
```
hrXhCNhGUhnPhPwhYkhvLhKwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPQRjZTUVjfaiQVGARiQSCARiQPQARiQMJARiQJZARiQGuARiQDkARiQAWARpI
```
Assembler source:
```
IDEAL
P186
MODEL   TINY
CODESEG
ORG 100H
MAIN:
        ; Encoded code:
        ;   MOV SI,100H
        ;   MOV CX,73H
        ; PRINT:
        ;   LODSB
        ;   XOR AL,20H
        ;   INT 29H
        ;   NOP
        ;   LOOP PRINT
        ;   INT 20H
               ; Offset Bytes Multiplier
    PUSH 5872H ; +41    BE 00 4157H
    PUSH 4E43H ; +44    01 B9 416BH
    PUSH 5547H ; +47    73 00 4175H
    PUSH 506EH ; +4A    AC 34 415AH
    PUSH 7750H ; +4D    20 CD 414AH
    PUSH 6B59H ; +50    29 90 4151H
    PUSH 4C76H ; +53    E2 F8 4143H
    PUSH 774BH ; +56    CD 20 4147H
REPT 30
    POPA ; Adjust stack to point to end of generated code
ENDM
    PUSH AX
    PUSH CX
    PUSH DX
    PUSH 5AH
    PUSH SP
    PUSH BP
    PUSH SI
    PUSH 66H
    POPA ; Use POPA as POP DX and POP DI are not in [A-Za-z]
    IMUL DX,[BX+DI+56H],4147H
    PUSH DX
    IMUL DX,[BX+DI+53H],4143H
    PUSH DX
    IMUL DX,[BX+DI+50H],4151H
    PUSH DX
    IMUL DX,[BX+DI+4DH],414AH
    PUSH DX
    IMUL DX,[BX+DI+4AH],415AH
    PUSH DX
    IMUL DX,[BX+DI+47H],4175H
    PUSH DX
    IMUL DX,[BX+DI+44H],416BH
    PUSH DX
    IMUL DX,[BX+DI+41H],4157H
    PUSH DX
    JO $+4BH ; Jump to start of generated code
END MAIN
ENDS
```
[Answer]
# [Gol><>](https://github.com/Sp3000/Golfish), score 34 - 33 = 1
```
"mrllssslssscsmzpdsmzprrrrrrtsuota
```
[Try it online!](https://tio.run/##S8/PScsszvj/Xym3KCenuLgYhJOLc6sKUkBEERiUFJfmlyT@/w8A "Gol><> – Try It Online")
Outputs the following and exits by error, which is every char uppercased except the leading `"`.
```
"MRLLSSSLSSSCSMZPDSMZPRRRRRRTSUOTA
```
### How it works
The lines marked with `*` are the differences from the previous version.
```
"..."    Push every char except `"`
mrl      Push -1, reverse stack, push stack length (34 = `"`)
* lsss   Push stack length (35) and add 16 three times (83 = S)
* lsss   Push stack length (36) and add 16 three times (84 = T)
* csmzp  Push 13, add 16 (29), push -1, boolean negate (0), and
         replace the command at (29,0) by T
* dsmzp  Push 14, add 16 (30), push -1, boolean negate (0), and
         replace the command at (30,0) by S
* rrrrrr  Reverse the stack 6 times;
          no-op to move the positions to overwrite
TSuot    Infinite uppercase-print loop; halt by error at -1
a        Not executed
```
---
# [Gol><>](https://github.com/Sp3000/Golfish), score 34 - 31 = 3
```
"mrlTSuotaaaaaaaaaaaaaaaaaaaaaaaaa
```
[Try it online!](https://tio.run/##S8/PScsszvj/Xym3KCckuDS/JBEX@P8fAA "Gol><> – Try It Online")
Outputs the following and exits by error.
```
"MRLTSUOTAAAAAAAAAAAAAAAAAAAAAAAAA
```
Every lowercase letters are uppercased, so the only chars that are not modified are `"TS`.
### How it works
```
"..."  Start string literal, push every char in the source code (except `"`),
       wrap around and end string literal
mr     Push -1 and reverse the stack
       (setup the chars for printing from top, and bury the trap at the bottom)
l      Push length of stack, which gives 34 == `"`
T...t  Infinite loop until it errors in the middle:
 Su     Uppercase the char at the top (errors when trying to uppercase -1)
 o      Pop and print as char
a...   Not reached
```
~~I suspect 2 or lower might be possible.~~
[Answer]
# [V (vim)](https://github.com/DJMcMayhem/V), score 3
```
2i2I
```
[Try it online!](https://tio.run/##K/v/3yjTyPP/fwA "V (vim) – Try It Online")
4 bytes with 1 case inversion. Twice inserts (`2i`) the string `2I`.
[Answer]
# 05AB1E, 16 - 6 = 10
```
0"D34çýu"D34çýu
```
(trailing newline)
# Explanation
```
0"D34çýu"D34çýu # full code
0"D34çý "D34çý  # standard 05AB1E quine
       u      u # uppercase string in stack
                # implicit print
```
Not the *best* golf, but it is my *first* golf so have mercy please.
[Try It Online!](https://tio.run/##yy9OTMpM/f/fQMnF2OTw8sN7S@EMrv//AQ)
---
# 05AB1E (legacy), 16 - 8 = 8
```
0"D34çýš"D34çýš
```
(trailing newline)
# Explanation
```
0"D34çýu"D34çýu # full code
0"D34çý "D34çý  # standard 05AB1E quine
       š      š # switch case builtin
                # implicit print
```
Thanks to Kevin Cruijssen for -2 score.
Doesnt work with current 05AB1E becuase the switch case function is `.š` which makes the byte count larger
[Try It Online!](https://tio.run/##MzBNTDJM/f/fQMnF2OTw8sN7jy5EsLj@/wcA)
[Answer]
# [Ruby](https://www.ruby-lang.org/), score ~~24~~ ~~20~~ ~~16~~ ~~12~~ 11
*Saved a byte thanks to a comment by @Sisyphus on another answer.*
```
eval S="print'EVAL s=%p'%S.swapcase"
```
[Try it online!](https://tio.run/##KypNqvz/P7UsMUch2FapoCgzr0TdNczRR6HYVrVAXTVYr7g8sSA5sThV6f9/AA "Ruby – Try It Online")
36 bytes with 25 case inversions. The case of every letter is changed in the output.
[Answer]
# [Husk](https://github.com/barbuz/Husk), Score = ~~3~~ 2
```
foccmawSeohs"foccmawseohs
```
[Try it online!](https://tio.run/##yygtzv7/Py0/OTk3sTw4NT@jWAnKKQZx/v8HAA "Husk – Try It Online")
So many letters!
Thanks Dominic van Essen for -1 to the score.
### Explanation
The standard quine in Husk is `S+s"S+s"`: it takes the string `S+s`, and concatenates it with its version surrounded by quotes. The swapcase command `\` would be easy to add here, but being an escape character as well it needs to be doubled inside the quoted string, resulting in too many unswappable character for my tastes.
What we do instead is convert each character to uppercase (with the conveniently lowercase builtin `a`), and then we just need to make sure to use only lowercase letters as much as possible. We can get rid of a final `"` by using `h` (init) on the quoted string, then the rest of the code is devoted to getting rid of that `+` symbol to concatenate strings.
```
foccmawSeohs"foccmawseohs
            "foccmawseohs    A string
       Se                    put it in a 2-elements list
         ohs                 with the quoted version of itself, minus the last quote
      w                      Join the two strings with a space
    ma                       Convert each character to uppercase
f                            And keep only those characters that are truthy when...
 occ                          converted to charcode and back
```
The last part is just an identity function (but `I` would be uppercase), and spaces are falsy in Husk, so we are just keeping all non-space characters in the string.
I'd love to get rid of the `S` but I don't see how, and I don't think it is possible to have a quine without quotes, barring convoluted conversions from numbers that would score terribly in this challenge... (Prove me wrong and you get a bounty!)
[Answer]
# [JavaScript (Node.js)](https://nodejs.org), 70 - 38 = 32
```
f=x=>`f=${f}`.replace(/(.)/g,y=>y<'`'?y.toLowerCase():y.toUpperCase())
```
[Try it online!](https://tio.run/##XY7LCsIwFET3fkUFwYTG1HXxVtCtO3GlxcT0plVKUpr6iKXfXisoiMsZhjnnIm/SqfpcNTNjM@x7DQ9IhIZJqzvBa6xKqZBEhNMoZx4Sv5iK6dLzxm7sHeu1dEho/M67qvpm2itrnC2RlzYnDjShTByMoKPfXqx8gy4OgmDSnsDxEk3eFN3/al1Ik2MWByLcc84HNxHqdFDLroMZOTLPnhQSFYIfg9s/U6ZgTv9OtsrW@EHN1MDoXw "JavaScript (Node.js) – Try It Online")
BTW: This is my first contribution and I'm a bit confused. I made sure to swap every possible character. The example only uppercases. If you don't *need* to actually swap cases, then one can get 11-0=11 with a simplified variant of an answer given above:
```
f=x=>"f="+f
```
[Answer]
# [Python 2](https://docs.python.org/2/), Score 52 - 33 = 19
```
s='S=%r;PRINT S%%S.SWAPCASE()';print s%s.swapcase()
```
[Try it online!](https://tio.run/##K6gsycjPM/r/v9hWPdhWtcg6IMjTL0QhWFU1WC843DHA2THYVUNT3bqgKDOvRKFYtVivuDyxIDmxOFVDk@v/fwA "Python 2 – Try It Online")
Case inverts every letter in the quine.
[Answer]
# [Perl 5](https://www.perl.org/), 37 bytes, 20 swapped case, Score 17
Thanks to [@Dominic van Essen](https://codegolf.stackexchange.com/users/95126/dominic-van-essen) for -1!
```
eval($a=q{print uc"eval(\$a=q{$a})"})
```
[Try it online!](https://tio.run/##K0gtyjH9/z@1LDFHQyXRtrC6oCgzr0ShNFkJLBQDFlNJrNVUqtX8/x8A "Perl 5 – Try It Online")
[Answer]
# [Keg](https://github.com/JonoCode9374/Keg), score 4
```
`④`④
```
[Try it online!](https://tio.run/##y05N//8/4dHExSD8/z8A "Keg – Try It Online")
4 bytes with 0 case conversions.
The standard quine without case conversion easily beats any Keg approaches that would have case conversion: by the time you've thrown case conversion techniques into the mix, you might as well have just written a standard quine with no fancy details.
[Answer]
# Javascript, 27 - 13 = 14
```
f=x=>`f=${f}`.toUpperCase()
```
[Try It Online!](https://tio.run/##Xc2xDoIwFIXh3aeoCUMbSuNMchnkEYwTElvLLWpIS2g1AuHZK4ODYT35c76neiuvh0cfMusajNHABwppIJnNIkVw577HoVQeKYvaWe86FJ1rqQdDGZcXK9nuf5fHMaDPCSHJfAMvOrRtuC/bqrwr22KTE5lWQogVlKmpxYDNSyOlVz7yiUGhUxj34Kup5hoObHNy0m7AH5Xp1Yhf)
[Answer]
# [R](https://www.r-project.org/), score = 78 - 53 = 25
```
a='a=%s;cat(toupper(sprintf(a,squote(a))))';cat(toupper(sprintf(a,sQuote(a))))
```
[Try it online!](https://tio.run/##K/qfmVeWWZyZlJOqEVxZrFecWpKTn5wI5CUnlqSm5xdVKtgqKPk4xzv6@CjpKEDkQELOSpqa/xNt1RNtVYutgWo1SvJLCwpSizSKC4oy80rSNBJ1igtL80tSNRI1gUAdl5pAhJr//wE "R – Try It Online")
[Answer]
# [Vyxal](https://github.com/Lyxal/Vyxal), 10 bytes − 8 inversions = score 2
```
`NDqp`NDqp
```
[Try it Online!](http://lyxal.pythonanywhere.com?flags=&code=%60NDqp%60NDqp&inputs=&header=&footer=)
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), Score = ~~very big number - very big number~~ 4508 - 4508 = 0
```
XaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXODTnBsbRvTTTTngmngmnngmngDUTnBsTTnnngmgTnBsTTTngmnnnngmgDVTnBsTTTnnngmngmngTnBsYTnBsTXmRykTnBXaKsYTnBsJ
```
[Try it online!](https://tio.run/##vVfBCoMwDP230dN2KIgb2VFhyBi6gzDY13dat5OOtu8liliNaUzavJf4HJv2fgtBGu@8@Dj49cP6uqW7OfzXS3wt12iWsbRJyY2ryO3CD@bZBtcg7VmmNh90cTip2ULsPGAHwUNZCGVzFRIacyzXCxOeQHCpAFLBU1Lw1MW2GPebZASIfHGU26QyTDd7@UHUFaEzkqVPanmIpVNoD0xJAkabVXHli4FyxTZxFbFGpDNNbzg8DaorFDXdUJvzJgcirT8FnVJt@CsiWnkOgE9UcVvWs2nTMVLGFBpxGm1i1TnKzh1hYdSuHg5jW73q6Ri6fj7j4M7zi0k2P3bLfVRYBO7yEw3fWVHnGqXSV@/HdCfNaZEcQ/gA "05AB1E – Try It Online")
EDIT: Can now finish in the lifetime of the universe!
Explaination:
```
XaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOOXaODOOXaODOOXaODOOXaODOXOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOOXaODOXOXaODOOXaODOXOXaODOXOXaODOOXaODOXO
            pushes 395523372811533155555555231622231622232316222316395655233728555523232316221655233728555555231622232323231622163957552337285555552323231622231622231655233728605523372855592253342055233759104628605523372845
D           duplicate it
TnB         and convert one of the duplicated to base 10^2 = 100, which is this code case inverted
s           swap, moving to front the number
b           convert it to binary
R           and reverse the binary
v           for each digit
 TTTT       push 10,10,10,10^1
 n          square, 10,10,10,10^2
 g          length, 10, 10, 10, 3
 m          exponent, 10,10,10^3
 n          square, 10,10,10^6
 gm         10^length, 10,10^7
 n          square, 10, 10^14
 n          square, 10, 10^28
 gm         10^length, 10^29
 n          square, 10^58
 g          59
 DU         duplicate and save in variable X
 TnB        convert to base 100, "x"
 s          and swap, so the stack is "x", "<string>"
 TTnnngmg   push 10, in the same way as 59
 TnBs       convert from base 100 and swap, so the stack is "x", "A", "<string>"
 TTTngmnnnngmg  push 50, in the same way as 59 and 10
 DV          save in variable Y
 TnBs       convert from base 100 and swap, so the stack is "x", "A", "o", "<string>"
 TTTnnngmngmng  push 39
 TnBs      convert from base 100 and swap, so the stack is "x", "A", "o", "d", "<string>"
 Y         push variable Y, 50
 TnBs      convert from base 100 and swap, "x", "A", "o", "d", "o", "<string>"
 TXmRyk    X if the current bit is 0, else 0
 TnBXaK    convert from base 100 and remove zeros, "X" if the value is 0 else ""
 sYTnBs    add "o" again
 J         join everything
```
[Answer]
# [Python 3.8 (pre-release)](https://docs.python.org/3.8/), 44 - 25 = 19 bytes
SwapCase all the char of the quine leaving only the non-alpha chars unchanged
```
exec(a:="input('EXEC(A:=%r)'%a.swapcase())")
```
[Try it online!](https://tio.run/##K6gsycjPM7YoKPr/P7UiNVkj0cpWKTOvoLREQ901wtVZw9HKVrVIU101Ua@4PLEgObE4VUNTU0nz/38A "Python 3.8 (pre-release) – Try It Online")
[Answer]
# [Japt](https://github.com/ETHproductions/japt), score 16 - 6 = 10
Sadly, a [standard quine with no toggling](https://codegolf.stackexchange.com/a/71932/16484) scores the same (10 bytes), but this is way more fun. Every letter is toggled.
```
"i34d¹²u"i34d¹²u 
"i34d¹²u"        // Take this string, shortly just the program string after the quote
         i       // Prepend
          34d    // a quote char,
             ¹   // and then (closing parens)
              ²u // repeat the result twice and uppercase it.
```
[Try it here.](https://ethproductions.github.io/japt/?v=1.4.6&code=ImkzNGS5snUiaTM0ZLmydQ==&input=)
[Answer]
# [Haskell](https://www.haskell.org/), score 29
```
import Data.Char;main=putStr x>>print x;x=map toUpper"import data.char;main=putstr x>>print x;x=map toupper"
```
[Try it online!](https://tio.run/##y0gszk7Nyfn/PzO3IL@oRMElsSRRzzkjscg6NzEzz7agtCS4pEihws6uoCgzr0ShwrrCNjexQKEkP7SgILVICaorBaQrGVlXMXZdpWBdXP//AwA "Haskell – Try It Online")
The non-flipped bytes are:
```
 D.C;=S >> ;= U" .;= >> ;= "
```
[Answer]
# [Python 2](https://docs.python.org/2/), 43 - 27 = 16 bytes
```
a="print'A=%r;EXEC A'%a.swapcase()";exec a
```
[Try it online!](https://tio.run/##K6gsycjPM/r/P9FWqaAoM69E3dFWtcjaNcLVWcFRXTVRr7g8sSA5sThVQ1PJOrUiNVkhkev/fwA "Python 2 – Try It Online")
Same answer than my Python 3 solution ... but ths time I can remove the parenthesis of the `exec` function and the `print` function (costing one char for the trailing newline)
]