(This is a dupe of Reshaping data.frame from wide to long format, Transforming wide data to long format with multiple variables. I can't vtc, vote was already cast.)
Sample data:
set.seed(42)
dat <- data.frame(Plot=letters[1:4], X01=runif(4), X01.1=runif(4), X01.2=runif(4), Y01=runif(4), Y01.1=runif(4), Y01.2=runif(4))
dat
#   Plot       X01     X01.1     X01.2       Y01     Y01.1     Y01.2
# 1    a 0.9148060 0.6417455 0.6569923 0.9346722 0.9782264 0.9040314
# 2    b 0.9370754 0.5190959 0.7050648 0.2554288 0.1174874 0.1387102
# 3    c 0.2861395 0.7365883 0.4577418 0.4622928 0.4749971 0.9888917
# 4    d 0.8304476 0.1346666 0.7191123 0.9400145 0.5603327 0.9466682
Code
tidyr::pivot_longer(dat, -Plot, names_pattern = "([XY])(.*)", names_to = c(".value", "miniplot"))
# # A tibble: 12 × 4
#    Plot  miniplot     X     Y
#    <chr> <chr>    <dbl> <dbl>
#  1 a     01       0.915 0.935
#  2 a     01.1     0.642 0.978
#  3 a     01.2     0.657 0.904
#  4 b     01       0.937 0.255
#  5 b     01.1     0.519 0.117
#  6 b     01.2     0.705 0.139
#  7 c     01       0.286 0.462
#  8 c     01.1     0.737 0.475
#  9 c     01.2     0.458 0.989
# 10 d     01       0.830 0.940
# 11 d     01.1     0.135 0.560
# 12 d     01.2     0.719 0.947