[Question]
  [
Given a string, replace all left-double-quotes into two backticks and all right-double-quotes into two single-quotes.
Left-quotes means the quotes that starts a quote. Right-quotes means the quotes that ends a quote. Quotes cannot be nested. You may assume that there are an even number of double-quotes in the string.
# Examples
Input:
```
"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"
```
Output:
```
``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''
```
  
[Answer]
# [Unreadable](https://esolangs.org/wiki/Unreadable), ~~789~~ 777 bytes
-12 bytes by using variable X34 rather than X6.
> 
> '""""""'""'"""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""'""""""'""'""'""'""'"""'""'""'""'""'""'"""""""'""'"""'"""""'""'""""""'"""'""""""""""'""""'""""""'""'""'""'"""'"""""""'""'"""'""""'""""""'""'""'"""'"""""""'"""'""""'"""""'"""""""'""'""'""'"""'""""'""""""'""'""'""'"""'""""""""'"""""""'""'""'""'"""'""""""'""'""'"""'""""""""'"""""""'""'""'"""'"""""""""'"""""""'""'""'"""'"'"""""""'"""'"'"""""""""'"""""""'"""""""'""'"""'""""'""""""'"""""""'""'"""'""""""""'"""'"'"""""""'""'""'""'""'"""'""""'""""""'"""""""'""'"""'"""'"'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""""""'""'""'""'""'"""
> 
> 
> 
[Try it online!](https://tio.run/##vVLBDoIwDL37FbWXXYgf4FFPHk34AIc0sAQ2GN33z0EwGTiJB3Vpsrz29b12mdOWZCmLhrwXOB0xxXz9OnBhKjbcV7NhnI@EnjAlnJRZ82JSzFj2bikspnnf9hk92itVWw6b5G5s/PqmmBDe2nitIP70b772/1I7eo@5gYLAWNCGgUeQIfTOcA1cE5ykLTNAriXv1DClekcDK6PxsMsD7KyprGxbpSu4G82hKDWDpa5RVB4BL9C6gaFUg6wsUegycDuLyDOgDEYLCBaj5nW22OMD "Unreadable – Try It Online")
Displayed in variable-width font, per the traditional tribute to the language name.
I learnt Unreadable for this challenge, because it is obviously the best tool for the job. The only characters allowed in Unreadable are `'` and `"`, so surely it is perfectly suited to a challenge which involves changing `"` into `''`. Isn't it?
Explanation:
```
'""""""'""'""" assign to X2
'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""" 34 (double quote sign)
'""""""'""'""'""'""'""" assign to X5
'""'""'""'""'""'"""""""'""'""" X2+5 (apostrophe sign)
'"""""'""'""""""'"""'"""""""""" while (1+ (assign to X1 a value read from stdin, or -1 if stdin is empty) != 0)
 '"""" do 2 things
 '""""""'""'""'""'""" assign to X4
 '"""""""'""'""" the value of X2
 AND
 '"""" do 2 things
 '""""""'""'""'""" assign to X3
 '"""""""'""" the value of X1
 AND
 '"""" do 2 things
 '"""""'"""""""'""'""'""'""" while(X4 != 0)
  '"""" do 2 things
  '""""""'""'""'""'""" assign to X4
  '""""""""'"""""""'""'""'""'""" X4-1
  AND
  '""""""'""'""'""" assign to X3
  '""""""""'"""""""'""'""'""" X3-1
 end while
 AND
 '"""""""""'"""""""'""'""'""" if(X3 != 0)
  '"'"""""""'""" print X1
 else
  '" print the output of
  '"""""""""'"""""""'"""""""'""'""" if(X34 !=0)
   '"""" do 2 things
   '""""""'"""""""'""'"""'""""""""'""" assign X34=0
   AND
   '"'"""""""'""'""'""'""'""" print X5
  else
   '"""" do 2 things
   '""""""'"""""""'""'"""'""" assign X34=1
   AND
   '"'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""""""'""'""'""'""'""" print X5+57
 end if
end while
```
(Calls to X34 are actually calls to X(X5), since X5=34.)
[Answer]
# TeX, ~~54~~ 32 bytes
For a TeX quotes replacement challenge we also need a TeX version of course!
```
\catcode`"13\def"#1"{``#1''}...\bye
```
`...` is the input string, so it doesn't add to the byte count.
[Answer]
# [Retina](https://github.com/m-ender/retina/wiki/The-Language), 13 bytes
Learning Retina quickly because for some reason I don't like Japt winning and feel like a C# solution would use regular expressions anyway. I know there is a Retina answer, but I haven't used it when creating this, and I found it (exactly) too anyway. 
```
#2$`"
``
"
''
```
[Try it online!](https://tio.run/##TY0xDsIwEAR7v2I5kNJESFBSQkWJlAfYkFNiifiS8@X9xkEUlLOr3VG2mMKplP354Ml578g1TSnUCZ4MUSQx2AYtYVnFRtjIuAbtW5CNwVzM32hZOVuUREfXVZxVBg3TFNOAlySrZUgG5fkdub@A7pjWbOhjDoMy15XA35o/Z6UWmwJVsX0@fooduQ8 "Retina – Try It Online")
[Answer]
# JavaScript (ES9), 34 bytes
Working on quoted blocks:
```
s=>s.replace(/"(.*?)"/gs,"``$1''")
```
[Try it online!](https://tio.run/##TY4xj8IwDIV3foXPOqktKkW3ngRIMDEiMTIk15o0qI1L7PL3ewm64cbPT37fe9iXlTb6STeBO1ruu0V2e2kiTYNtqdxi2awPFW6d1GjM51dRYLW0HIQHagZ25b00eGX4IeAIgRU0Q43wnFl70J7gaGNXA2pvdeXlfXrOJOo5YLO6Jpwiu2jH0QcHqVxTaINCXuGp@wY8wziLQufFukiUvhhu5lT8k2asIUsgSXLr5U/ygaaqll8 "JavaScript (Node.js) – Try It Online")
---
# JavaScript (ES6), 38 bytes
Working on each double-quote separately:
```
s=>s.replace(/"/g,_=>(c="'`"[s^=1])+c)
```
[Try it online!](https://tio.run/##TY4xT8MwEIX3/orjliZqSMWK5A5lYkTqBoUY5@q4Snyp79K/H2zEwPjd073vXe3dikth1sfIPa0Xs4o5SJtoHq2jao9733yZQ@UMbjt8l0/zdK53rl4dR@GR2pF9dak6PDF8E3CCyApaoEG4LawD6EBwtKlvAHWwugnye7otJBo4Yrs5ZZwT@2SnKUQPuVxzaKNCWRKofwZ8hWkRhT6I9YkofzF8dC/bf9KCDRQJZElpffuTPGBX1@sP "JavaScript (Node.js) – Try It Online")
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~15~~ 13 bytes
```
⁾``⁾''2ƭ”"Ƒ¡€
```
[Try it online!](https://tio.run/##TY6xDcIwEEX7TPFx4yaioKSEihIpA8SQU2KU2Il9KeiADRiAgh5WoKDIIFnEOIiC5qT3T/ffHaiujyGM51eexyHlYniOp5sYru/7eHmEEKSUIrPYEayDsQyeIBXoessVuCKslCtSCK4UJ9p/o64nz9oaMU@yiK2zpVNNo02JvTUcl8owHLW1pmIJsUHTe0ahvSodUbyyyNfyzxkpxaRAVEyd259iJuKLHw "Jelly – Try It Online")
Full program.
[Answer]
# [Python 3](https://docs.python.org/3/), 65 bytes
```
f=lambda s:s and(s[0],"`'"[s.count('"')%2]*2)[s[0]=='"']+f(s[1:])
```
[Try it online!](https://tio.run/##TY4/T8MwEMX3fIrHSSgxRBWULVIWmBiRukWR6tZOYqnxpfZl4NOHC2JgfH/ufm/5lonj27YN7c3OF2eRmwwbXZW7l76mc0ldPlx5jVKVVJrHY/90NN0etq0a/fOgzdemN9uSgpaGiogKOjEuHpwQWSC7qAn3lWWCTB7vNrkaJJOVIuRf6776LIEjHYqTyiXxmOw8hzjiylE0tFGQ/HIL3jWgT8xrFriQ7Zi81yvG@aP8x1RVY0dAEfvPrz/Egw4kMmb7AQ "Python 3 – Try It Online")
*-8 bytes thanks to Erik the Outgolfer*
[Answer]
# [Japt](https://github.com/ETHproductions/japt), 12 [bytes](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
Would be 11 only for a limitation of (or maybe it's a bug in) Japt.
```
r'"È²îT°g"`'
```
[Try it](https://petershaggynoble.github.io/Japt-Interpreter/?v=1.4.6&code=ciciyLLuVLBnImAn&input=JyJUbyBiZSBvciBub3QgdG8gYmUsIiBxdW90aCB0aGUgQmFyZCwgInRoYXQKaXMgdGhlIHF1ZXN0aW9uIi4KVGhlIHByb2dyYW1taW5nIGNvbnRlc3RhbnQgcmVwbGllZDogIkkgbXVzdCBkaXNhZ3JlZS4KVG8gYEMgb3Igbm90IHRvIGBDLCB0aGF0IGlzIFRoZSBRdWVzdGlvbiEiJw)
```
r'"È²îT°g"`'     :Implicit input of string
r'"              :Replace double quotes
   È             :Pass each match through a function
    ²            :  Duplicate
     î           :  Replace each character with
      T°         :    Postfix increment T (initially 0)
        g"`'     :    Index into "`'" with wrapping
```
[Answer]
# [!@#$%^&\*()\_+](https://github.com/ConorOBrien-Foxx/ecndpcaalrlp), ~~22~~ 21 bytes
```
`'("_*("+@"_*)+$!!@@)
```
[Try it online!](https://tio.run/##TY3BDoIwEETvfMXQmABC/ABPRE8eTbhLhQ00gW5pl@@vxXjwtHk7mXk02NENWi9@cTH2Rale51LVbTpVfcrztq1iVB3jTWAPywI5oFHYdpYZMhNu2o8NlMxaMhO@r22nIIatumRdQud58npdjZ0wsJUUaivw5BZD4xXqgXUPgtEEPXmi1GL09@LPmajBoUBSHJvPnyJXHw "!@#$%^&*()_+ – Try It Online")
Terminates with an error. 21 looks like an impressive score, beating quite a few languages including Charcoal. Inspired by [this](https://esolangs.org/wiki/!@$%25%5E%26*()%2B#LOLOL).
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 23 bytes
```
ＷＳ⊞υι⭆⪪⪫υ¶¦"⎇κ⁺×²§'`κιι
```
[Try it online!](https://tio.run/##TY47T8QwEIT7/IrBzdmSj4KSq4AqSCcFXUqKM8kqti6xc/aax68PNlBQrEazj/l2sCYOwczb9mHdTJCtXzOfODo/SaXQ5WRl1nDq0HSlyfJ3djSrPK2zY/kcnK8b4tULVUVU6Sl6E7/kRaObc5K9WyjJO40Hbv1In1LszkLjolTNrqXUYdtEH/BGCBE@MLgaLXDNgS3YEh5NHAuDreHGpZ/WNVNiF7y4bfpi1ximaJal/IgheC5D4xmRyrM03kO0WHJijC6ZKRKVq4Dz0@4fsziNikBB1MyXP8SNaLb9@/wN "Charcoal – Try It Online") Link is to verbose version of code. Includes 8 bytes to avoid a cumbersome input format. Explanation:
```
ＷＳ⊞υι
```
Collect input lines until an empty line is reached.
```
⪫υ¶¦
```
Join the lines on newline characters.
```
⪪..."
```
Split the input on quotes.
```
⭆...
```
Map over each part and concatenate the results for implicit print.
```
⎇κ...ι
```
Leave the first part unchanged.
```
⁺×²§'`κι
```
Prefix the appropriate quote, doubled.
[Answer]
# [R](https://www.r-project.org/), 40 bytes
```
cat(scan(,"",,,'"',""),sep=c("``","''"))
```
[Try it online!](https://tio.run/##TY1BCsIwEEWv8p1NWhg8gOBGVy4FD9CYDm3AZtpkev6aioK7efP5/@VtC96aEnxqmIiZHbl6tFxkPoeGuo6YnKO23eiheAo0I6nBdmDCsqqNsFFw8blnkI3eEMvntaxSLGqiIx4V56xD9tMU04CgyWrokyHL/IrSn0A3TGsx9LH4IYvUlqK7uj9nJcZPsW/ev4oDbW8 "R – Try It Online")
Reads string input, separating at each `"`, giving a vector of strings. Then pastes those strings, alternating between the double backticks and the double apostrophes as separators, recycling them as needed.
Someone will probably post a shorter R answer based on a regex... Still, this answer is more typical of R, I think.
Explanation of the `scan(,"",,,'"',"")` part:
```
scan(, # empty first parameter: read from STDIN
  "",  # type of input is a string
  ,    # default 3rd parameter nmax
  ,    # default 4th parameter n
  '"', # separate on character "
  "")  # do not treat any characters as quotations marks (necessary to handle ' in the input)
```
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 13 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
ṣ”"µJḊ⁾`'ṁḤż@
```
A full program.
**[Try it online!](https://tio.run/##TY6xDcIwEEX7THG4cRMxABWCCjokBoghp8QosRP7UtCRlh2oYAWkREIUSAziLGIcREH5/un/dwcsiqP3rr8Opwt73deuOw/tM@Gub113ez/m3nvOOdtq2CFoA0oT0Agxg7rRlAPlCAth0hgY5YIiab9R3aAlqRWbRtuAldGZEWUpVQZ7rSgchSIwWBUS0xmwFZSNJUilFZlBDC0NyZL/OQPFMCogKMbNzU8xYeHFDw "Jelly – Try It Online")**
### How?
```
ṣ”"µJḊ⁾`'ṁḤż@ - Main Link: list of characters, T   e.g. ..."hi" - she "said"...
 ”"           - character '"'                           '"'
ṣ             - split (T) at ('"')                      ["...","hi"," - she ","said","..."]
   µ          - (call that X) start a new monadic chain
    J         - range of length (of X)                  [1,2,3,4,5]
     Ḋ        - dequeue                                 [2,3,4,5]
      ⁾`'     - list of characters                      ["`","'"]
         ṁ    - mould like                              ["`","'","`","'"]
          Ḥ   - double                                  ["``","''","``","''"]
           ż@ - (with reversed @rguments) zip (with X)  [["...","``"],["hi","''"],[" - she ","``"],["said","''"],["..."]]
              - implicit (smashing) print               ...``hi'' - she ``said''...
```
[Answer]
# [Labyrinth](https://github.com/m-ender/labyrinth), (43?) 53 bytes
```
396"
 } "",)@
  ~"  (
 "~ 3_:
""" 4
" .;-
=   ;
..::;
```
**[Try it online!](https://tio.run/##TY2xDoJAEET7/YpxGzVBGoyJEBOjlaUJvZ5ygUvgDo6lsJBfx8NYWL6ZzLxaPV7eWKmmKdnvmPAGc7Q@EjAysCLwiOSWEjNjS4w429ABQEZxnKbZNHHu8NBwHtYJZIaI0Q1OKkilcVK@iMBSKSHTf6Nu0L0YZzmmPGDrXelV0xhb4umshFJZgddtbXSRgi9ohl5QmF6VXuuwcrifl3/OQBFmBYJi/rz@FAv@AA "Labyrinth – Try It Online")**
A golfed version of this, much simpler, 92 byte program:
```
3 """
9 " ",)@
}96 " (
    " :_34-;;
    "     ; :
   """"""". :
   "        .
   """"""""=.
```
If we don't need to handle input containing the zero byte **[then 43 bytes](https://tio.run/##TY2xDoIwGIT3PsX5Ly7IgjGhxMTo5GjCLlUaaAItlJ/BwWevrXFw/O5y9w3q8fLGch9CUb5LcQIOosmIRAOQkMjpmOfijgqJi/2uqqQMgWqHh4bzsI7BCTLCvDruwb3GWfk2A3GvWJjlG82rXtg4S7moI07edV6No7Edns5yLJVleD0NRrcSdMW4LozWLKrzWseVQ3PZ/jkjZUgKREX6vP0UG/oA "Labyrinth – Try It Online")**:
```
39}9
@  6
`,""
`  "
: ."=..
_ ;   "
34-;;::
```
[Answer]
# [Perl 6](https://github.com/nxadm/rakudo-pkg), 23 bytes
```
{S:g/\"(.*?)\"/``$0''/}
```
[Try it online!](https://tio.run/##TY2xDoIwGIR3n@JsjKgh4ORAYkx0cjQyMlClQBPaQvt3IMZnx2IcHL@73H29sN1hUiPWNY7T6541acE2ye60LVhalqt9FKXvyfERNVznbT@x3OAhYCy0IdAMMcPgDbWgVuDMbRWDUctpId03GrxwJI1mySIP2FvTWK6U1A2eRlMouSZY0XdSVBnYFco7QiUdb6wQYWVQXqI/Z6AYswJBMX/efool@wA "Perl 6 – Try It Online")
Darn, the obvious solution is shorter. Replaces each quoted portion with a version with the appropriate quotes.
# [Perl 6](https://github.com/nxadm/rakudo-pkg), 24 bytes
```
{S:g{\"}=<`` ''>[$++%2]}
```
[Try it online!](https://tio.run/##TY2xDoIwGIR3n@JsVAaIg4MDEQedHI1sakKVAk2ghfZnIIRnr8U4OH53uftaYeq9awZsCiRuvMXl@GBTcsgyBMHxvgrD9e45OcsHFLB1b1rHUo2XgDZQmkAzRAxdr6kCVQInbvIIjCpOC2m/UdcLS1Irtl2kHlujS8ObRqoSb63Il1wRjGhrKfIY7IKmt4RcWl4aIfxKIzsHf05PEWYFvGL@vP4US/YB "Perl 6 – Try It Online")
Replaces each double quote, alternating between the two sets of characters.
[Answer]
# [Red](http://www.red-lang.org), 79 bytes
```
func[s][q:"^""parse s[any[to change[q copy t to q q](rejoin["``"t"''"])skip]]s]
```
[Try it online!](https://tio.run/##TY69TsQwEIT7PMWwTUCK7gFSQkUJus4yii/eJAbi301xQvfswUQIUc7M7nyT2e6vbJVuph77tPlRFa1ST29E0eTCKMr4q5KAcTF@ZpUwhniFoFoJSd9nfg/OKxoGEmpb0g/lw0Wti95jdl4w4YvOARdGyPDh@LxwR0hbkAWyMB5Nth1IFiNoXDm8tHERFzydbs1f0bkGMYc5m3V1fq5bvNQzU9PM8dOx7UHPWLcisK6YOTOfmkofntp/@Ko6HLQK@@l8@YXd0W3/Bg "Red – Try It Online")
[Answer]
# [Retina](https://github.com/m-ender/retina/wiki/The-Language), 15 bytes
```
"
""
Y`"`\`\`''
```
[Try it online!](https://tio.run/##TY2xDoJAEET7@4pxGxpiYmuplaUJjQkFp2zgErmFveX7cTEWZqo3m52nbCnH07ZRIAqPjrrWU1VeNIInQxRZDLZDTVhWsRE2Mi5R@xpkY7SQyrdaVi6WJNMxNI6zyqBxmlIe8JJsfozZoDy/E/dn0A3TWgx9KnFQZv8SdNfqz@lUY1fAFfvm/ac40Ac "Retina – Try It Online") Edges out the boring Retina 0.8.2 answer by 1 byte. Explanation:
```
"
""
```
Duplicate all of the quotes.
```
Y`"`\`\`''
```
Cyclically replace the quotes with pairs of backticks and single quotes.
Boring 16-byte [Retina 0.8.2](https://github.com/m-ender/retina/wiki/The-Language/a950ad7d925ec9316e3e2fb2cf5d49fd15d23e3d) answer for completeness:
```
s`"(.*?)"
``$1''
```
[Try it online!](https://tio.run/##TY2xCsJAEET7fMW4CFEJgq2NoJWlkA@40yzJgblN9jbff17EwvLNMPOULUSfc3K0Ox4ue6qc257qOmdqBU@GKKIYbIWGMC9iA2xgXL12DcgGb1VI32heOFmQSMeqLTip9OrHMcQeL4lWSh8NytM7cHcG3TEuydCF5HtlLiuBu9V/zkINVgWKYv18/BQb@gA "Retina 0.8.2 – Try It Online")
[Answer]
# [PHP](https://php.net/), 62 bytes
Non-RegEx solution:
```
for(;''<$l=$argv[1][$i++];)echo$l=='"'?["''","``"][++$j%2]:$l;
```
[Try it online!](https://tio.run/##TY3BCsIwEETvfsW6RKK0CHq0FUFPHgVvpdBoYxNpszHd@vs1FQ9eBt4sO88bP@YHH/NBYZlJmYt2L1Ro3sWmLIRNkjJb6buhWO8lykOBUmKKVYVlkSTiudiWO9Fm4zjileCmgQI4YuAJUoTXQGyAjYajCnUKyEbxzPbf6jXoni05XM@uEX2gJqius66BOzmOR@UYgvat1fUO8Azd0DPUtldN0Dp@EVQn@eeMlMKkgKiYNi8/xRw/ "PHP – Try It Online")
---
# [PHP](https://php.net/), 48 bytes
Port of [Arnauld's RegEx solution](https://codegolf.stackexchange.com/a/190783/81663):
```
<?=preg_replace('/"(.*?)"/s',"``$1''",$argv[1]);
```
[Try it online!](https://tio.run/##TY7LCsIwEEX3fsU4CGklKG59UNCVS8GdiI3tkAZskiZTfz@m4sLlucO9Z3znU9pXBx9IPwL5l2qoEGssVsuqxHUUEut6sREC5UIF/b5t7uUupYRXB08CF8A6Bp5AIgyj4w64Iziq0EpA7hTPTPxGw0iRjbO4ml0z@uB0UH1vrIbGWc5HZRmmHwy1W8Az9GNkaE1UOhDlloP6JP6cmSRMCsiKafPyU8zxAw "PHP – Try It Online")
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~69~~ 68 bytes
```
t=39,z;f(char*s){z=*s-34?*s:257*(t^=71);printf("%s",&z);*++s&&f(s);}
```
[Try it online!](https://tio.run/##TY5dS8MwFIbv@yuOAWuSZYJOGVsogl55KewyiDFN28CadMnpTcd@e01F0cv3vB/PMevWmHnGarMTk2yo6XTkiZ2niqf15uGJp/3945ZTfK@2d0wO0XlsKLlORJQTk3y1SmXZ0MTkZe6185TBuYCcUOQQ4NNCiOADAi5CKAKnMWAH2Fl41rEWoAh2GpUnBQAQl76t02gTuuAVuf11Dvk8xNBG3ffOt2CCxxzSHiHa4ehsvc9br9CPCaF2SbfR2r92gI@Xm3/PZCVgIUNGLttvP8grRXKJyeIyfwE "C (gcc) – Try It Online")
One byte shaved off by @ceilingcat!
[Answer]
# [Python 2](https://docs.python.org/2/), 57 bytes
```
lambda s:re.sub('"(.*?)"',r"``\1''",s,flags=16)
import re
```
[Try it online!](https://tio.run/##pY49a8QwDIZ3/wpVi5JiAtehw0EotFPH0htvsNM4iSH@OFsZ@utTJ9xw0BsK3fRK6H2e@M1T8E/r0J7XWbuu15CPyTR56SrCqnl8qZFkQqXOByKUWQ6zHnN7eK6FdTEkhmTW3CKiwFOAzkBI4AMDb0EiXJbAE/Bk4FWnXgLypFnYvK8ui8lsg8dGnEqMKYxJO2f9CF/BczlqvxHibE1/BHwHt2SG3mY9JmPKVwD1RjfMkiRsCCiIrfPjingogkVS8O6q1B1Zol@2St3TJfqbr1L/ESbajWOye2fzeR2HKtc3Y9uyWH8A "Python 2 – Try It Online")
Although I really like [Jitse's answer](https://codegolf.stackexchange.com/a/190790/69880).
[Answer]
# (GNU) [sed](https://www.gnu.org/software/sed/), ~~38 33~~ 30 bytes
***-4** by removing the `-n` flag and implicitly printing on `n`, **-1** by reusing previous `/expression/`, thanks @Cowsquack. **-3** by using implicit branch-to-end.*
```
:a
s/"/``/;T
:b
s//''/;ta
n;bb
```
~~[Try it online!](https://tio.run/##TY0xDsMgDAB3XuGyZEmaPdnaqWOlPCBQEEFqbALm@6UQdejmO8u@ZM3gMJcyKZFGOa7rOLMWYdZi0qfpumpUNThrXYpcCLQFioDEwA16CUcm3oA3CzcVTQ@SN8XCp1Md2Sb2hPIqloohkotq3z06eBFyXSpkiDa8vTUTyAfsOTEYn5SL1tYrgvXe/TUr9dASUBPt5/OXuEjxodCmVAb8Ag "sed – Try It Online")
[Try it online!](https://tio.run/##Tc0xDsIwDIXhPad4ZOlSyN5uMDEi9QBNiJVGonFJnPOXFDEwfrbsv5A/h1T3fbCqGG3m2YzilFODazZd12hVGp3bdz0xHIEzEgvkQK/xriwLZCFcbfY9tCxWVCzf0btSkchJX9TUuGUO2a5rTAFPTtKWNgkyba9IfoC@Y61F4GOxIRO1K8Z86/6aTT2OBFri@Pn4JU5afQA "sed – Try It Online")~~
[Try it online!](https://tio.run/##TY0xEsIgFER7TrHSpInSJ51Wls7kAAHzhzBj@BE@50fiWFi@3dl9mZazj6XWwapstJlnM05qcA1M15lRrIqjc7XqieEInBBZIAf0Gu/CskJWwtWmpYeW1YoK@Ru9C2UJHPVFTQ33xD7ZbQvR48lRWmmjINH@CrQM0HdsJQuWkK1PRG3FmG/dn7NRj0OBpjg@Hz/FSasP "sed – Try It Online")
Some pretty basic label jumping. ~~This can probably be golfed by a byte or two.~~
```
:a          # label a
s/"/``/;T   # replace " -> ``. If unsuccessful, move to next line
:b          # label b
s//''/;ta   # replace " (implicit) -> ''. If successful, jump to a (w/o reading new line)
n;bb        # read in the next line, but jump to label b. 
```
[Answer]
# [Stax](https://github.com/tomtheisen/stax), 11 [bytes](https://github.com/tomtheisen/stax/blob/master/docs/packed.md#packed-stax)
```
û╩↕H£ñ╟Uzay
```
[Run and debug it](https://staxlang.xyz/#p=96ca12489ca4c7557a6179&i=%22To+be+or+not+to+be,%22+quoth+the+Bard,+%22that%0Ais+the+question%22.%0AThe+programming+contestant+replied%3A+%22I+must+disagree.%0ATo+%60C%27+or+not+to+%60C%27,+that+is+The+Question%21%22&a=1&m=1)
### Procedure:
1. Take all input, newlines and all.
2. Regex replace `'"'` with a block that produces alternating outputs of pairs of backticks and foreticks(?)
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), 15 bytes
```
'"¡ā¨„'`sè2×.ιJ
```
[Try it online!](https://tio.run/##TY0xDoJAFESvMm5DQygsLbXSzoQDsMgPbCL7YffT6ynsTOy4gi1YewgvsoLRxPLNZOax17mhECI13B7noX@drlHmx345XpLnfReCShk5gR0sC2SGWKHtWCpIRVhrV8RQUmmB8Z@o7ciLYasSpBM2jkun69rYEge2MpXaChw1R0PFCmqLuvOCwnhdOqJpxcg20Z9zohg/xfy5/yoW6g0 "05AB1E – Try It Online")
No regexes in 05AB1E, so we split on `"`, make a list of alternating ```` and `''`, then interleave the two.
[Answer]
# [Haskell](https://www.haskell.org/), ~~67~~ ~~60~~ 58 bytes
```
(#0)
('"':x)#n=["``","''"]!!n++x#(1-n)
(a:b)#n=a:b#n
x#n=x
```
[Try it online!](https://tio.run/##y0gszk7NyfmfbhvzX0PZQJNLQ11J3apCUznPNlopIUFJR0ldXSlWUTFPW7tCWcNQNw@oItEqCSQPpJTzuCqArIr/uYmZebYFpSXBJUU@eSrpSsVAEKNUkppQrF4So5RYnJCinqj0/19yWk5ievF/3QjngAAA "Haskell – Try It Online")
The relevant function is `(#0)`.
Since I originally thought the question also required us to convert single quotes here is a version that handles both:
# [Haskell](https://www.haskell.org/), 125 bytes
```
(#(1<0,1<0))
('"':x)#(m,n)=last("``":["\""|m])++x#(not m,n)
('\'':x)#(m,n)=last('`':['\''|n]):x#(m,not n)
(a:x)#n=a:x#n
x#n=x
```
[Try it online!](https://tio.run/##XcpBCsIwEAXQfU8hE2ESWkG3way8QMGN0BQ6aKvFJIqJkEXPbkxcOvAZ@P/dyN9HY9KkdOKM7/bbJkeIiiOgjIJx2zihDPnAYRhAdqABFtuLuo6Mu0dYFZC5xn@PA8qu9IvrhYy/KfuiqVCn8mOuylExWZqder7DMbzWE/h8GsKIHoMG8nhBgvQ5T4auPm1Oh7b9Ag "Haskell – Try It Online")
[Answer]
# [QuadR](https://github.com/abrudz/QuadRS), 14 bytes
```
"(.*?)"
``\1''
```
[Try it online!](https://tio.run/##TY2xDsIwEEP3foXJUkBVJVYWJJg6InVk6EFObSSaa5PL94cUMTA@W/ZbE9mQs9m3x8vBVMPwONV14V7wZEiAF4Vu0BisSXSCTowrBdvA6ERaufiN1sRRnXjTVn3BJcgYaJ6dH/ESr6Ukrwi8vB3bM0yHOUWFdZHGwFxWguFW/zkLNdgUKIrt8/5T7Ey2mT4 "QuadR – Try It Online")
Simple find/replace using @Adám's wrapper for Dyalog APL's `⎕R`eplace function.
### How:
```
"(.*?)" ⍝ PCRE, finding anything between two double quotes and assigning it to group 1
``\1''  ⍝ Transformation string, replacing the match with ``group_1''.
```
[Answer]
# [GolfScript](http://www.golfscript.com/golfscript/), ~~35~~ 34 bytes
```
1:c;{.34={;c)2%:c'""'"``"if}""if}%
```
[Try it online!](https://tio.run/##TY3LCoMwEEX3/YrpgEhBhD5WSjftqsuCH2AaYwxoRpNxJf32NClddDNw5nLv0TT2XjozcwjHStZbeb5ct1oeTlklc8Qc2xZN/8Z0shCwIXgpIAeWGDhBgbCsxAPwoOAmXFcA8iB4Z/z3tazKsyGL5a6JODvSTkyTsRokWY6hsAxOzaNRXQX4gGn1DJ3xQjulYougved/zkgFJAVERdp8/hR7/AA "GolfScript – Try It Online")
# Explanation
```
1:c;                                # Set 1 to the current item counter
    {                            }% # Map for every character in the input:
     .34=                      if   #     If the character isn't the quote,
                             ""     #         Just leave it alone
         {                  }       #     Otherwise:
          ;                         #         Remove the copy of the input
           c):c                     #         Increment the counter
                2%        if        #         If the counter isn't divisible by 2, 
                  '""'              #             Output the double-quote
                      "``"          #         Otherwise: Output the double backtick
```
[Answer]
# [Vyxal](https://github.com/Lyxal/Vyxal) `Ṡs`, 18 bytes
```
\"Ẇƛ\"=[&›¥₂[\'|\`
```
[Try it Online!](http://lyxal.pythonanywhere.com?flags=%E1%B9%A0s&code=%5C%22%E1%BA%86%C6%9B%5C%22%3D%5B%26%E2%80%BA%C2%A5%E2%82%82%5B%5C%27%7C%5C%60&inputs=%22hello%22&header=&footer=)
```
\"Ẇ                # Split on ", keeping delimiter
   ƛ               # Map...
    \"=[           # If a "
        &›         # Increment the register
          ¥₂[      # If even...
             \'    # Single quote, 
               |\` # Else backtick. 
```
[Answer]
# [Lua](https://www.lua.org), 36 bytes
```
print((...):gsub('"(.-)"',"``%1''"))
```
[Try it online!](https://tio.run/##TY3BCsMgEETv@YrtQlHBCr3m2J56LOQDYhsxQuImun6/NaWHHt8MM28pttYthchSGmNU73N5SYHSXBQKjeN4vgqBStVacSB4OaAEkRj4AI2wF@IZeHZws2nSgDxb7kL@RntxmQNFNN3QcEvkk13XED28KXIrbWRIbluCm3rAB6wlM0whW5@cayuC8S7@nI00HApoiuPz@VOc8AM "Lua – Try It Online")
Wow, only two chars longer than js solution.
[Answer]
# [Perl 5](https://www.perl.org/) `-p0`, 19 bytes
```
s/"(.*?)"/``$1''/gs
```
[Try it online!](https://tio.run/##TY0xDsIwDEX3nsJYSAVUWhhYWJBgYkTqARqolUZq4zRxr09IEAObn7/@f478eIoxNLipd5ctNl23PpZlo0OM2DI8CdiDZQHJUCHMC8sAMhBcle8rQBmUFCZ8X/NCQQxbrIs2ofOsvZomYzW82EoKlRXw5EZD/RnwDtMSBHoTlPZEqcXQ3co/Z6IKsgKSIm8@fooVvtnlI8S9O3wA "Perl 5 – Try It Online")
[Answer]
# Java 8, 40 bytes
```
s->s.replaceAll("\"([^\"]+)\"","``$1''")
```
[Try it online.](https://tio.run/##TZBRS8MwFIXf9yuOQWiLXcFXxwT1yQcH4t6WSbM2tplt0iW3A5H99noz@uBLyD3hnO@eHNVZLY/191R1KgS8KWN/F4CxpP2XqjQ2cQQ@yBvboErnS8hWrF8WfARSZCpsYLHGFJaPofB66Nj81HWpkCLdfUqxv8ukELkoy9v7JBHZtIreYTx07J0jzs7U6HmFmbLbQ2Uz/yeQ7gs3UjHwE3U2tUUV07cOBw3nYR2B4pBLgdPoqAW1Gs/K1zmkoFaRtCZcxdOoAxlnpSik3bIweNd41ffXko7b80qWEIsYXT@w/xX9GAi1CarxWkefQ/mS/EPzlCNywJiY@j5jbrh6Nv/YZfoD)
**Explanation:**
```
s->                             // Method with String as both parameter and return-type
  s.replaceAll("\"([^\"]+)\"",  //  Replace all these matches,
               "``$1''")        //  with this replacement 
```
*Regex explanation:*
```
 "([^"]+)"                      // MATCH:
 "                             "//  A literal "
   [^"]+                       "//  Followed by 1 or more non-" characters
  (     )                       //  (captured in capture group 1)
         "                     "//  Followed by a literal " again
``$1''                          // REPLACEMENT:
``                              //  Literal ``
  $1                            //  Followed by the match of capture group 1
    ''                          //  Followed by a literal ''
```
[Answer]
# [Wren](https://github.com/munificent/wren), 91 bytes
```
Fn.new{|n|
var c=1
for(i in n.split("\"")[1..-1])System.write(((c=-~c)%2==0?"``":"''")+i)
}
```
[Try it online!](https://tio.run/##TY9BS8QwEIXv/RVjQNqw3WA9LhTBBcGjuDcrNKazbaCd7CZTi7j612siHjy@N7z3zVs80vquPRxnMlDD@kCKcPm80CVLtqmr7Oh8YcESkAqn0XIhGiHkS6XUtnqVzx@BcVKLt4xFUZh6@23k9W1d39yJthU7kedCbqzMvtbEUEaPY2o4OHhDcB7IMXASZSPgPDsegAeEe@27EhrBg@bMhl/vPGNg66gRKjtEffKu93qaLPVgHHG8amLwGN/EbhfTjzDNgaGzQfceMcYctPv8HzeqEhIEIiSVPv1BrtLK9Qc "Wren – Try It Online")
## Explanation
```
Fn.new{|n| // New anonymous function
var c=1    // Set the index counter as 1
for(i in n.split("\"")                                                 // For each over n splitted with quotes
                      [1..-1])                                         // Get rid of the first quote
                              System.write(                          ) // Output this to the console
                                           (
                                            (c=-~c)                    // Increment the counter
                                                   %2==0?"``"          // If that's divisible by 2, output a backquote
                                                             :"''"     // Otherwise, output a frontquote
                                                                  )+i  // Join the result with i
}
```
]