# R, <s>65</s> 61 bytes
_-2 bytes thanks to MickyT_

_-2 bytes by changing the indexing_

returns an anonymous function.

    function(s,n,x=nchar(s))`if`(n>x,'',substring(s,x:n-n+1,n:x))

`substring` cycles through the indices (as opposed to `substr` which does not), and if the starting index is less than 1, it defaults to `1` instead, so it checks and returns the empty string.

`x:n-n+1` is equivalent to `1:(x-n+1)` since `:` takes precedence over sums/differences

[Try it online!][1]


  [1]: https://tio.run/nexus/r#Fco7CoAwDADQ4yTBOAhOQj1LP5raJUJjobevdHrLEzekafrKq2is3J2mJ1Q0Il/Eo56dAdhatK8WzTMdfdVlmxINQQgxXbdk4J3GDw