A Snake, A Camel And A Kebab As many of you will know, almost every programming language has a standard casing system; unfortunately, we have not been able to agree on a singular system to use and now must frequently switch between camelCase, snake_case, PascalCase and kebab-case.
Now I know what you're thinking... wouldn't it be nice if we had a program that could convert from one casing to another?
Well - soon we're going to have plenty!!! (This is where you come in)
Challenge
You're job is to write a program/function that will take an input string, and a casing system. It will then print/return the converted string.
Inputs:
You're program will receive two inputs, an alphabetic string that is to be converted and a string that will always be one of kebab camel pascal or snake.
Outputs:
You're program should output a string that conforms to the new casing. You can assume the input string is valid and will only conform to one of the casings (i.e. it won't be mixed_Casing).
As most programming languages prefer lowercase variable names, you should convert all letters to lowercase unless it is needed to be upper case for the casing requirements.

Snake Case: All letters are lower case, with underscores separating words.
Kebab Case: All letters are lower case, with hyphens separating words.
Camel Case: The first letter of every word after the first is capitalized, with no spaces.
Pascal Case: The first letter of every word is capitalized, with no spaces.

Test Cases:
&quot;aJavaVariable&quot;, &quot;snake&quot; = &quot;a_java_variable&quot;  
&quot;a_python_variable&quot;, &quot;kebab&quot; = &quot;a-python-variable&quot; 
&quot;golf&quot;, &quot;camel&quot; = &quot;golf&quot;
&quot;camelToPascal&quot;, &quot;pascal&quot; = &quot;CamelToPascal&quot;  
&quot;PascalToCamel&quot;, &quot;camel&quot; = &quot;pascalToCamel&quot;  
&quot;&quot;, &quot;snake&quot; = &quot;&quot; 
&quot;doHTMLRequest&quot;, &quot;kebab&quot; = &quot;do-h-t-m-l-request&quot;  



&lt;!-- Run the snippet to see the leaderboard. Report any bugs to @ozewski on Github. --&gt;    &lt;iframe src="https://ozewski.github.io/ppcg-leaderboard/?id=216396" width="100%" height="100%" style="border:none;"&gt;Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.&lt;/iframe&gt;&lt;style&gt;html,body{margin:0;padding:0;height:100%;overflow:hidden}&lt;/style&gt;
Perl 5 -lF'_|-|(?=[A-Z])', 69 bytes

$,=('_','-')[$c=3-ord(&lt;&gt;)%14%7];say map$c&gt;1&amp;&amp;$i++||$c&gt;2?ucfirst:lc,@F

Try it online!